regex - 正则表达式 - 最多包含 1 个子字符串

标签 regex

我想要一个正则表达式来查找最多出现一次的子字符串 bab。 (在字母表 {a,b} 中)

这里我有一个正则表达式,用于在字母表 {a,b} 中最多查找 bb

(a+ba)* + (a+ba)*.b + (a+ba)*.bb.(a+ab)*

我想使用此示例正则表达式,但随后使用 bab 作为子字符串。 我如何扩展此正则表达式以查找最多出现一次的子字符串 bab?

我是不是从这个开始:

(b+ab)* + (b+ab)*b + (a+ba)* + (a+ba)*.b + (a+ba)*.bab.(a+ab)*

最佳答案

如果我理解你的问题,你想匹配最多只有一个“bab”计数的字符串,如果有多个则不匹配。

我们可以为此使用否定前瞻:

https://regex101.com/r/QBe2bD/3

我使用 galabra 发布的测试字符串作为起点。

注意:“babab”匹配。如果您不想匹配它,您可以使用替代方法,但我将其留作练习。

提示:^(?!.*bab(.*bab|--)).*$ 将“--”替换为两个字符,这样您就可以不匹配 babab。

关于regex - 正则表达式 - 最多包含 1 个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48916643/

相关文章:

python - 用于忽略搜索中的字符的正则表达式

javascript - 包含 15 位字母数字和逗号分隔符的正则表达式

jquery - 在 jQuery 中将每个函数与正则表达式一起使用

php - 使用 PHP 正则表达式从 html 中提取 JSON 对象

c# - 正则表达式从字符串中删除括号?

c# - C#中的正则表达式运行缓慢

java - 正则表达式不匹配多个字符串

c++ - 将所有正则表达式匹配保存在 vector 上

python - 正则表达式匹配直到给定文本?

javascript - 只允许字母和空格 - jquery 验证插件