正则表达式仅在恰好出现一个匹配时匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式仅在恰好出现一个匹配时匹配相关的知识,希望对你有一定的参考价值。
我写了这个正则表达式
(<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}
但它似乎没有用。我做错了什么?
答案
尝试使用否定前瞻来断言不会发生第二场比赛:
^(?!.*\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
出现一次且仅出现一次的字符串。我们可以写:
^(?!.*\bBAT\b.*\bBAT\b).*\bBAT\b.*$
以上是关于正则表达式仅在恰好出现一个匹配时匹配的主要内容,如果未能解决你的问题,请参考以下文章