正则表达式否定模式匹配

时间:2014-09-12 21:52:14

标签: c regex-negation

我在下面有三个字符串示例:

day/Mon/done
day/Tue/done
day/Wed/done

如何使用其他两个的否定来提取day/Wed/done?以下不起作用。

/day/[^(Mon|Tue)]/done

2 个答案:

答案 0 :(得分:1)

这不是否定character classes的工作 - 他们仍然将[..]内的每个角色都解释为单个角色。

没有匹配
day/?/done

其中?只有一个字符。要么使用Regular expression to match a line that doesn't contain a word?中的任何技术(谢谢,彼得!),要么充分利用这些日子的第一个角色是独一无二的事实:

day/[^MT]../done

答案 1 :(得分:1)

您可以尝试lookahead

'day/(?!(Mon|Tue)).*/done'