首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >正则表达式,匹配{}之间的字符

正则表达式,匹配{}之间的字符
EN

Stack Overflow用户
提问于 2010-07-28 15:09:37
回答 4查看 1.3K关注 0票数 0

我正在尝试查找在{ }之间包含<或>的文本。这是在HTML中,我很难让它变得“不贪婪”。

因此,我想查找与这些字符串匹配的文本:

代码语言:javascript
运行
AI代码解释
复制
{test > 3}
{testing >= 3 : comment}
{example < 4}

我尝试了许多正则表达式,但似乎都超过了闭合},并且包括带有<或>的HTML。例如,我尝试了这个正则表达式

代码语言:javascript
运行
AI代码解释
复制
{.*?(<|>).*?}

但最终会像这样匹配文本:

代码语言:javascript
运行
AI代码解释
复制
{if true}<b>testing</b>{/if}

看起来很简单,{}之间包含<或>的任何文本。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-28 15:12:07

这应该能起到作用:

代码语言:javascript
运行
AI代码解释
复制
{[^}]*(<|>).*}
票数 4
EN

Stack Overflow用户

发布于 2010-07-28 15:18:17

一个更高效的正则表达式(因为没有非贪婪匹配):

代码语言:javascript
运行
AI代码解释
复制
'#{[^}<>]*[<>]+[^}]*}#'

第三个字符类中没有括号的原因是,它可以匹配具有多个>的字符串(如{foo <> bar}...

票数 1
EN

Stack Overflow用户

发布于 2010-07-28 15:13:32

代码语言:javascript
运行
AI代码解释
复制
{[^}]*?(<|>)[^{]*?}

试试看。注意,我用一个字符类替换了.,这个字符类表示除了左/右大括号之外的所有内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3354261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档