首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅当恰好存在一个匹配项时才匹配的正则表达式

仅当恰好存在一个匹配项时才匹配的正则表达式
EN

Stack Overflow用户
提问于 2019-04-14 19:09:54
回答 1查看 43关注 0票数 0

我写了这个正则表达式

(<b>)\b[a-zA-Z][a-zA-Z0-9_]{4,15}</b>

但我希望只有在恰好出现一次的情况下才触发匹配,所以我认为我需要这样做

((<b>)\b[a-zA-Z][a-zA-Z0-9_]{4,15}</b>){1}

但它似乎不起作用。我做错了什么?

EN

Stack Overflow用户

回答已采纳

发布于 2019-04-14 19:15:54

尝试使用否定的先行检查来断言没有出现第二个匹配:

代码语言:javascript
运行
复制
^(?!.*\b[a-zA-Z][a-zA-Z0-9_]{4,15}\b.*\b[a-zA-Z][a-zA-Z0-9_]{4,15}\b).*\b[a-zA-Z][a-zA-Z0-9_]{4,15}\b.*$

这是一个冗长的正则表达式,很难读懂。假设您希望匹配单词BAT出现一次且只出现一次的字符串。我们可以这样写:

代码语言:javascript
运行
复制
^(?!.*\bBAT\b.*\bBAT\b).*\bBAT\b.*$
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55674619

复制
相关文章

相似问题

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