Улучшение регулярных выражений PHP 2.0 - PullRequest
0 голосов
/ 07 декабря 2011

Привет всем ,

Благодаря @ FailedDev В настоящее время у меня есть регулярное выражение, которое используется в preg_match для чата.В этом вопросе я пытаюсь добиться того, чтобы регулярное выражение не чувствительно к регистру и позволяло ему использовать пробелы в «ключевом слове», которое в данном случае является fred.

/(?<=^|\s)(?:\bfred\b|\$[$\w]*fred\b)/x


Для получения справочной информации см. Ссылку.

Справка


Спасибо за любую помощь поthis.


Обновление: Благодаря некоторой полезной информации я нашел следующее регулярное выражение, которое делает то, что мне нужно, хотя я чувствую, что это не самое эффективное решение.

~(?:(?<=\s|^)[$\S]*|\b)f+(?:\.+|\s+)?r+(?:\.+|\s+)?e+(?:\.+|\s+)?d+(?:\.+|)?\b~i

1 Ответ

3 голосов
/ 07 декабря 2011

Если вы хотите, чтобы регистр не учитывался, используйте модификатор /i .

Чтобы разрешить дополнительный пробел, используйте \s* для переменного числапробельных символов, или [ ]? для одного необязательного пробела.

См. также руководство по preg_match и Обзор синтаксиса PCRE и http://regular -expressions.info / для учебника.Проверьте также справочный вопрос Есть ли что-нибудь вроде RegexBuddy в мире открытого исходного кода? , чтобы получить список инструментов, помогающих создавать регулярные выражения.И некоторые полезные онлайн-инструменты .

...