【发布时间】:2012-11-19 05:48:45
【问题描述】:
试图找到这个问题的正则表达式:
尝试匹配以下字符串中的“137b”,使用否定的前瞻和后瞻断言:
<Rate Symbol="EURTRY">
<Bid>2.29443</Bid>
<Ask>2.29562</Ask>
<High>2.29841</High>
<Low>2.28999</Low>
137b
<Direction>1</Direction>
<Last>23:29:11</Last>
</Rate>
谁能指出为什么这个正则表达式不起作用:
(?<!(<\w+>))[a-zA-Z0-9_\.:]+(?!(</\w+>))
意图:包含 "a-zA-Z0-9_.:" 的字符串前后没有 XML 标记,因此它应该匹配 "137b" ,但事实并非如此。
这里是正则表达式的链接: http://regexr.com?32rk4
而没有否定断言的相同正则表达式(<\w+>)[a-zA-Z0-9_\.:]+(</\w+>) 可以正确匹配 xml 标签内的所有字符串。
【问题讨论】: