正则表达式向前看以查找下一个n(5)个字符中是否存在字符

时间:2014-09-20 20:54:30

标签: regex

给出字符串......

2010-01-21DD2010-01-21XX2010-01-21ND2010-01-2104XN

...,我想检测最后两个日期 - 字符组合。

我尝试了(2010-01-21(?=NN)[A-Z]{2}),但这只有在N

的情况下才有效

4 个答案:

答案 0 :(得分:1)

如果您要检查后面是否有N字母,可以使用以下内容。

[\d-]+(?=[A-Z]{0,5}N)

Live Demo

答案 1 :(得分:1)

您可以使用以下内容来检查1- n 字母必须至少包含1' N'

 # [\d-]+[A-Z]{1,6}(?<=N)

 [\d-]+            # Digits or dashes
 [A-Z]{1,6}        # 1 to 6 characters
 (?<= N )          # Must have found 'N' within 1-6 letters
                   # [A-Z]*  Optionally grab the rest of trailing letters

答案 2 :(得分:1)

要检查以下5个字符中的字符N,您可以使用(?=.{0,4}N)

即,&#34;后跟最多4个字符和N&#34;。

在您的情况下,看起来您想要查看接下来的2个字符。这将是(?=.{0,1}N),相当于(?=.?N)

答案 3 :(得分:0)

为什么不简单地使用替代品,例如(N[A-Z]|[A-Z]N)