| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Группировка символов preg_match |
| Автор: night00 4.1.2012, 23:29 | ||
Здравствуйте.
Никак не могу подобрать правильное регулярное выражение, чтобы оно пропускало в троке " но не пропускало & и ; по отдельности. Бьюсь уже целый день, но решения не нашёл.. Заранее спасибо.. |
| Автор: ksnk 5.1.2012, 00:33 | ||
Вместо ^& можно подставить тот длинный символьный класс, если очень нужно |
| Автор: night00 5.1.2012, 11:52 |
| Спасибо, но проблема в том, что такая регулярка пропускает символы & и ; по отдельности. А смысл в том, чтобы эти символы пропускались _только_ в сочетании с quot и в строгой последовательности ( " ) То есть если дадут &q; или &quo; или &touq; или &; - они пройти не должны, только " |
| Автор: ksnk 5.1.2012, 12:12 | ||
Ну и? Проходят, чтоли?
поменял \w на [a-z] и добавил модификатор i, чтобы не проходили русские буквы в регулярке + поменят на незахватывающую маску. Все остальное - тоже самое. |
| Автор: night00 5.1.2012, 12:42 |
| Нет, но проходят, к примеру, & и | Мне нужно проверить название фирмы на английском, например, JSC "New Time" Соответственно, никаких & и | там быть не должно.. пробел, A-Z, a-z и строго " - вот только это должно быть разрешено.. |
| Автор: ksnk 5.1.2012, 13:36 | ||
|
| Автор: night00 5.1.2012, 14:10 |
| Спасибо! только $eng_char_pattern = '/^(?:[0-9a-z\.\,_+\-\s]|")+$/iD'; |