regex - 如何防止此正则表达式匹配此模式?

标签 regex

如何阻止此正则表达式匹配第一行?我希望它匹配除 [keyworddash] 之外的每一行。基本上,如果有第二个匹配组,那么必须有一个冒号。

\[keyword(\d?):?(.*)\]
[keyworddash]
[keyword1]
[keyword2]
[keyword:default]
[keyword2:default]

这是一个测试器:http://www.regexpal.com/?fam=93714

最佳答案

这将通过假设所有行必须包含数字或冒号来排除第一行

\[keyword(?=(\d|:))(\d?):?(.*)\]

通过使用正向前瞻 (?=(\d|:)),我们确保在 keyword 之后匹配的下一个字符是冒号或号,否则匹配失败。

关于regex - 如何防止此正则表达式匹配此模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427086/

相关文章:

c# - string 删除所有字母

javascript - 使用 Javascript 正则表达式插入行号?

python - 删除空列表元素

javascript - 将正则表达式组解构为对象而不是数组

如果匹配包含特殊单词则匹配的正则表达式

javascript - 正则表达式返回 null

regex - 不清楚的复杂正则表达式

.NET 正则表达式保留字符

Java正则表达式保留特定的结束标签

javascript - JavaScript 中的正则表达式给出未捕获的类型错误