使用正则表达式排除字符串

时间:2010-09-25 03:28:39

标签: regex regex-negation

我正在制作正则表达式,其中包括除“时间”,“小时”,“分钟”之外的所有模式 所以,解决了这个问题:

^(?:(?!time).)*$

我如何为其他2个单词添加?我尝试如下但是不正确。

^(?:(?![time][hour][minute]).)*$

有更好的方法吗?

我没有添加可以接受的值,因为它的范围从数字到字母到符号等。

请帮忙。

谢谢

3 个答案:

答案 0 :(得分:1)

^(?:(?!time|hour|minute).)*$

|是替代。这意味着在字符串中的所有点上,我们不会查看任何这些表达式(时间,小时或分钟)。 []是错误的,因为它会创建一个字符类。

所以这意味着,不要看(a t,i,m或e),然后(a h,o,u或r)等等。

答案 1 :(得分:0)

通过阅读你的问题,我猜你只想要“行”不包含“时间”,“小时”或“分钟”这几个字。尝试类似......

^(?!.*(time|hour|minute).*).*$

答案 2 :(得分:0)

我将采取不同的方法:!/time|hour|minute/出了什么问题?过度使用正则表达式通常是一个坏主意。