2010-07-22 69 views
2

即时新闻正则表达式,并想破译此。你能告诉我这个正则表达式的含义吗?

return preg_replace("/[<>]/", '_', $string); 

谢谢!!

+5

这意味着,用'无动于衷的脸'代替'用手臂挥舞着伤心的机器人' - 这就是它的意思。 – Gordon 2010-07-22 19:41:47

+0

悲伤的机器人?!它看起来像两个麻雀法式接吻 – hollsk 2010-07-22 19:45:46

+0

@hollsk nope,这只是你的肮脏的幻想玩雅技巧; – Gordon 2010-07-22 19:49:17

回答

9

这意味着“用下划线替换字符串$string中的每个<>,然后返回结果”。

斜线(/)分隔正则表达式。您可以使用其他字符(preg_replace("#[<>]#", '_', $string);可以正常工作,如果您的正则表达式本身包含斜线,则可以使用)。

[]括号表示一个字符类。它们基本上是“班上所有人的一个字符”,所以[<>]的意思是“<>”。

您还可以通过与^开始就否定一个字符类:[^<>]手段“除了<>任何字符

+0

击败我30秒。很高兴我的回答是对的。 :P – spinon 2010-07-22 19:40:28

+0

感谢这非常有帮助,我唯一不知道的是在参数的开始和结束处使用/(或者如您在示例中显示的那样)使用/的最新点,该函数不能通过简单地使用“[<>]” 谢谢! – chicane777 2010-07-22 20:00:01

+0

它不会工作,因为PHP需要使用正则表达式分隔符。我不能告诉你为什么 - 其他语言已经实现了这个不同。 Python或.NET使用字符串(没有额外的分隔符),Ruby有正则表达式作为第一类对象,所以他们需要自己的分隔符('/')。在JavaScript中,您可以选择使用字符串('“...”')或正则表达式对象('/.../')构建正则表达式。为什么你需要在PHP中 - 不知道。 – 2010-07-22 20:05:58

0

它看起来就像是用下划线代替无论是大于或小于号但我在正则表达式中有点生锈

相关问题