【发布时间】:2011-04-24 03:52:48
【问题描述】:
鉴于此 PCRE 模式:
/(<name>[^<>]*<\/name>[^<>]*<phone>[^<>]*<\/phone>)/
还有这个主题:
<name>John Stevens</name> <phone>888-555-1212</phone>
<name>Peter Wilson</name>
<phone>888-555-2424</phone>
如何让正则表达式匹配第一个名字-电话对,而不是第二个?我不想匹配由换行符分隔的对。我尝试在否定字符类中包含一个行尾,例如[^<>$]*,但没有任何改变。
您可以使用以下在线工具来测试您的表情:
http://rubular.com/
http://www.regextester.com/
谢谢。
【问题讨论】:
-
在字符类中,
$失去了它的特殊含义,变成了一个简单的美元符号。你想要的是:[^<>\r\n]asawa 建议。