Как включить режим нечувствительного к регулярному выражению пробела в PHP? - PullRequest
5 голосов
/ 16 сентября 2009

Я пробовал модификатор "m", но не работает:

$reg = '/...
        /m';

preg_match($reg,...,$match);

EDIT

Или, может быть, мне нужен модификатор, который может игнорировать пробелы, такие как ENTER, TAB и так далее. Потому что, когда я удаляю пробел в моем регулярном выражении, это работает.

ИЗМЕНИТЬ СНОВА :

Мне нужен модификатор, чтобы регулярное выражение

"/aaaa b/",
"/aaaa
 b/"

это то же самое, скажем, он просто игнорирует пробел в самом регулярном выражении.

Ответы [ 2 ]

8 голосов
/ 16 сентября 2009

Модификатор, который вам нужен: x

print_r(preg_match('/aaa
        bbb/x', 'aaabbb'));
0 голосов
/ 16 сентября 2009

Возможно, у вас проблема с точками, не совпадающими с новыми строками в вашем регулярном выражении. Вы можете использовать модификатор s , чтобы точки соответствовали всему, даже новой строке.

Надеюсь, это поможет

это даст

/aaaaaaa.+b/ms

Также было бы лучше использовать \ n, потому что в зависимости от вашего редактора (Unix или Windows) символ новой строки может состоять из разных символов, CR + LF или только LF ... поэтому ваш код не будет переносимым.

или действительно игнорировать пробелы в регистре ex

function formatRegEx($reg){
 return preg_replace('/(\s+)/m', '\s+', $reg);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...