如何在PHP中启用空格不敏感的正则表达式模式?

时间:2009-09-16 06:21:35

标签: php regex

我尝试过“m”修饰符,但不能正常工作:

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

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

修改

或许我需要一个可以忽略像ENTER,TAB等空格的修饰符。 因为当我删除正则表达式中的空格时,它可以正常工作。

再次编辑

我需要一个修饰符,以便正则表达式

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

是相同的,比如,它只是忽略了正则表达式本身的空白区域。

2 个答案:

答案 0 :(得分:8)

您需要的修饰符为x

print_r(preg_match('/aaa
        bbb/x', 'aaabbb'));

答案 1 :(得分:0)

您可能遇到点与正则表达式中的新行不匹配的问题。您可以使用s修饰符,它可以使点匹配所有内容甚至是新行。

希望这有帮助

它会给出

/aaaaaaa.+b/ms

使用\ n也是一种更好的做法,因为根据您的编辑器(Unix或Windows),换行符可能是不同的字符,CR + LF或只有LF ......因此您的代码将无法移植。

或者真的忽略了reg ex中的空白

function formatRegEx($reg){
 return preg_replace('/(\s+)/m', '\s+', $reg);
}