Я хочу выбрать конкретный текст для визуализации данных.
Мой план состоит в том, чтобы выбрать текст из текстового файла
file.txt
Этот файл выглядит так
Швейцария (SUI) # - 23 игрока
(1) GK Pascal Zuberbühler ## 40, Базель (SUI)
(12) Г. К. Диего Бенальо ## 1, Насиональ (ПОР)
(21) Г. К. Фабио Колторти ## 2, Grasshoppe (SUI)
(3) Д.Ф. Людовик Магнин ## 30, Штутгарт (Германия)
Я хочу выбрать
(SUI), (POR), (SUI) & (ГЭР)
Итак, я сделал регулярное выражение
# \ W ([A-Z]) {3} \ S #
Это код, который я уже сделал
$ myfile = fopen ("2006 / ch-switzerland.txt", "r") или die ("Невозможно открыть файл!"); echo fread ($ myfile, filesize ("2006 / ch-switzerland.txt")); fclose ($ MyFile);
Итак, теперь я хочу выделить конкретный текст и поместить его в группы, чтобы я мог видеть
(SUI) 2, (POR), (GER)
Мои навыки PHP не очень велики, поэтому я надеюсь, что вы сможете мне помочь.
Спасибо за ваше время 😉
С file_get_contents
Есть более простой способ прочитать файл. Однако, поскольку вы, похоже, хотите пропустить первую строку (с именем футбольной команды), я бы предпочел читать файл в виде строк. Это может быть сделано с file
,
Кроме того, вам не нужны круглые скобки вокруг букв регулярного выражения: #\W[A-Z]{3}\S#
<?php
# We use an array for counting
$counts = array();
# Read the file lines into an array
$lines = file('test.txt');
# Iterate over all lines but the first (1 means we start at line 1, instead of 0)
foreach (array_slice($lines, 1) as $line) {
# Do the regular expression and check if it was a match
$was_match = preg_match('#\W[A-Z]{3}\S#', $line, $match);
if ($was_match)
{
# check if we already counted this country
if (!isset($counts[$match[0]]))
$counts[$match[0]] = 0; # if not, set count to initial zero
# increment the country count by one
$counts[$match[0]] += 1;
}
}
var_dump($counts);
// array(3) {
// ["(SUI)"]=>
// int(2)
// ["(POR)"]=>
// int(1)
// ["(GER)"]=>
// int(1)
// }
Других решений пока нет …