我写了这个正则表达式
(<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}
但它似乎不起作用。我做错了什么?
发布于 2019-04-14 19:15:54
尝试使用否定的先行检查来断言没有出现第二个匹配:
^(?!.*\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.*$
https://stackoverflow.com/questions/55674619
复制相似问题