Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите составить регулярку, находящую в строке группы символов, не совпадающие со словарем
Форумы портала PHP.SU » PHP » Регулярные выражения » Помогите составить регулярку, находящую в строке группы символов, не совпадающие со словарем

Страниц (1): [1]
 

1. DimaShin - 02 Сентября, 2014 - 11:23:51 - перейти к сообщению
Я получаю строки вида: DBL + 2EXT.BED + 1CHD
Есть несколько вариантов обозначений: DBL, EXT, CHD, TRPL, AD, ADD, но в любой момент может прийти что-то новое. Смысл в том, чтобы знать, что в строке что-то не из словаря.
Например:
dictionary = array('DBL', 'EXT', 'CHD', 'TRPL', 'ADD', 'AD');
string = DTRPL + EXT.BED
В этом случае DTRPL - что-то новое, регулярное выражение должно это понять.

Пытаюсь построить выражение на отрицаниях, но [^EXT] отрицает любой символ из группы, а ^EXT ищет 'EXT' в начале строки. Кто-нибудь может с этим помочь?
2. Мелкий - 02 Сентября, 2014 - 11:44:32 - перейти к сообщению
Почему это надо делать регуляркой?
Вы наверняка дальше что-то будете делать с этим описанием гостиниц, там и проверяйте, знаете вы такое размещение или нет.
Если всё-таки ничего не делаете - сделайте preg_match_all по простейшему [a-z]+ и проитерируйте результат на in_array - это будет проще сопровождать и удобнее что-то делать при появлении неизвестного элемента.
3. dcc0 - 02 Сентября, 2014 - 17:54:15 - перейти к сообщению
Словарь у вас в массиве. Можно загонять получаемые данные в массив и сравнивать два массива.
http://www.php.su/functions/?array-diff

 

Powered by ExBB FM 1.0 RC1