2009-09-18 73 views
2

什么是使用的任“/”或“#”作为正则表达式封装正则表达式封装PHP

例如差异优点/缺点

'/' = preg_match('/MYSEARCH}(.+)ENDMYSEARCH/s',$out,$matches); 

'#' = preg_match('#MYSEARCH}(.+)ENDMYSEARCH#s',$out,$matches); 

谢谢!

回答

7

唯一对PHP/PCRE很重要的是,您必须在开始和结尾使用相同的字符

重要的是逃避:在正则表达式中,如果你想使用它,你必须逃避分隔符。

例如,以匹配URL的一部分,使用/作为分隔符,你的正则表达式可能是这样的:

'/^http:\/\/www/' 

使用/作为分隔符,你必须逃离这是里面的斜线正则表达式 - 不容易,而且看起来不太好。

在另一方面,使用#作为分隔符:

'#http://www#' 

更容易编写和阅读,是不是?


Depeding您的需要和/或偏好,你可以使用任何你想要的字符 - 我有时会看到“!”或“~”,例如。

+0

谢谢你真的很有帮助! – Lizard 2009-09-18 16:29:04

+0

不知道你可以使用你偏好的一个字符,并且我认为我已经了解了PHP Regexs的学习内容。 – MitMaro 2009-09-18 16:40:19

+0

@蜥蜴:不客气:-) ;; @MitMaro:总有比你想象的更多的PCRE ;-) – 2009-09-18 19:12:01

1

还请记住,与preg_quote你可以添加要逃脱的分隔符。