正则表达式阻止彼此n个字符内的2个模式

时间:2014-03-24 18:45:24

标签: regex

我想要做的是创建一个单一的正则表达式,只要在两次出现之间存在n和n2个字符之间,就会在字符串中找到“cat”和“mouse”。

我尝试过的(失败的)是:

cat{1,12}?mouse

目标是让它在这句话中注册:

the cat and mouse played.

但不是这句话:

the cat went out for lunch and on the way found the mouse

2 个答案:

答案 0 :(得分:2)

为什么不做这样的事情?

cat.{1,12}mouse

该正则表达式将匹配cat后跟1-12个字符,然后是mouse

答案 1 :(得分:-1)

正则表达式中的空格在哪里?

cat[ ]{1,12}mouse

不确定我是否正确理解了您的问题。如果您想考虑任何字符(换行符除外),请使用点.

cat.{1,12}mouse

如果您想避免选择xcat

这样的字词,可以在字词周围使用字边界
\bcat\b[ ]{1,12}\bmouse\b