我正在尝试查找在{ }之间包含<或>的文本。这是在HTML中,我很难让它变得“不贪婪”。
因此,我想查找与这些字符串匹配的文本:
{test > 3}
{testing >= 3 : comment}
{example < 4}
我尝试了许多正则表达式,但似乎都超过了闭合},并且包括带有<或>的HTML。例如,我尝试了这个正则表达式
{.*?(<|>).*?}
但最终会像这样匹配文本:
{if true}<b>testing</b>{/if}
看起来很简单,{}之间包含<或>的任何文本。
发布于 2010-07-28 15:12:07
这应该能起到作用:
{[^}]*(<|>).*}
发布于 2010-07-28 15:18:17
一个更高效的正则表达式(因为没有非贪婪匹配):
'#{[^}<>]*[<>]+[^}]*}#'
第三个字符类中没有括号的原因是,它可以匹配具有多个>的字符串(如{foo <> bar}
...
发布于 2010-07-28 15:13:32
{[^}]*?(<|>)[^{]*?}
试试看。注意,我用一个字符类替换了.
,这个字符类表示除了左/右大括号之外的所有内容。
https://stackoverflow.com/questions/3354261
复制