正则表达式匹配任何包含西里尔符号的字符串,除了标有//,///,///等的注释

时间:2012-04-07 18:38:35

标签: regex

我想找到所有包含至少1个西里尔字符的字符串(基本上是/.* [ - - ]。* /),但注释除外。

 Comment是一个字符串或字符串的一部分,以2个或更多/字符开头。  目前我得到了这个正则表达式,它可以解决这个问题:

^(?=^.*?[А-я]+).*?((?=[\/]{2,})|(^(?:(?![\/]{2,}).)*$))

但我希望减少臃肿和快速表达。

 另外一个问题是:有人可以解释为什么这个有效吗?我通过反复试验将它结合起来,但我不确定我是否完全理解它是如何工作的,因为当我试图在任何部分改变它时 - 它就会停止工作。

1 个答案:

答案 0 :(得分:2)

以下正则表达式将匹配任何前面没有双正斜杠的cyrllic字符

(?<!/{2}.*)[А-я]

它指定不应使用负斜视前面的双斜杠。

您尚未指定您使用的正则表达式的哪种口味,但请注意某些口味不支持外观。例如PCRE(javascript)没有。你正在使用正则表达式中的3个,所以我认为它没问题。