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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Проблема с отрицаниями буквосочетаний
DimaShin
Отправлено: 02 Сентября, 2014 - 11:23:51
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Я получаю строки вида: 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' в начале строки. Кто-нибудь может с этим помочь?
 
 Top
Мелкий Супермодератор
Отправлено: 02 Сентября, 2014 - 11:44:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Почему это надо делать регуляркой?
Вы наверняка дальше что-то будете делать с этим описанием гостиниц, там и проверяйте, знаете вы такое размещение или нет.
Если всё-таки ничего не делаете - сделайте preg_match_all по простейшему [a-z]+ и проитерируйте результат на in_array - это будет проще сопровождать и удобнее что-то делать при появлении неизвестного элемента.


-----
PostgreSQL DBA
 
 Top
dcc0
Отправлено: 02 Сентября, 2014 - 17:54:15
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Словарь у вас в массиве. Можно загонять получаемые данные в массив и сравнивать два массива.
http://www.php.su/functions/?array-diff


-----
Март 2021. Бросил программирование
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB