Найти слова в текстовом списке из слова с пропущенными буквами - PullRequest
0 голосов
/ 26 ноября 2018

Поиск, как сделать это за несколько дней, но безуспешно.Я сделал скрипт, чтобы найти слова в списке, содержащем несколько букв, только один раз.Это работает.

Теперь я хотел бы создать скрипт для поиска слов в списке текстовых файлов, например, с таким словом: W ??? EB ?? RD ?.Позиции каждой буквы важны.Мне просто нужно найти слова, которые подходят. Пропущенные буквы - это?

1 Ответ

0 голосов
/ 26 ноября 2018

Как я уже упоминал в комментариях, в вашем регулярном выражении отсутствовали разделители

$fl_array = preg_grep("[A-Z]HITEBOARDS", $array);

Должно быть

$fl_array = preg_grep("/[A-Z]HITEBOARDS/", $array);

Вы можете или должны включить границу слова \b до и послеword, это предотвратит совпадение частичных слов, таких как (например), если бы у вас было это /\b[A-Z]here\b/, которое могло бы соответствовать therefore вместо просто there.Без границ совпадения могут произойти в начале, середине или конце частичных слов, что, вероятно, не то, что вы хотите.Граница будет соответствовать чему-либо, что \W или другими словами не \w или проще [^a-z0-9_] или по-английски: соответствует чему-либо, не алфавиту, цифре или подчеркиванию, в основном все ваши знаки препинания, специальные символы (кроме _)и пробелы.

Таким образом, чтобы поместить это в код, было бы это:

 $fl_array = preg_grep("/\b[A-Z]HITEBOARDS\b/", $array);

Также вместо:

$array = explode("\n", file_get_contents('test.txt'));

Вы можете использовать

$array = file('test.txt', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

Функция file предпочтительна, потому что она разбивает файл на массив, основанный на концах строк (не зависит от ОС \r\n против \n в качестве разнесения).Кроме того, для лучшей производительности он также имеет два действительно полезных флага.FILE_IGNORE_NEW_LINES является заданным значением, так как это удаляет окончания строк, которые обычно сохраняются в массиве file().FILE_SKIP_EMPTY_LINES будет в основном делать то, что говорит, и пропускать пустые строки.

Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...