电话号码。第三个字符不应为5或6,但仍应为数字0-9

时间:2019-01-25 04:50:26

标签: regex

这只是一个学习练习。

enter image description here

我想匹配前两个电话号码。但不是最后3个。

在最后一个字母中,您有一个字母作为第三个字符。

[\d]{3}[^56][\d]{5}

这将选择不带5或6的那些。 但是它也会选择最后一个带有“ D”的数字。 我该如何解决呢?

据我所知,REGEX中没有AND运算符。

[\d]{3}([[^56]&[\d])[\d]{5} <-不存在

1 个答案:

答案 0 :(得分:3)

使用三个正则表达式后,您可以引入积极的眼光,以确保下一个字符是此正则表达式的数字,

SELECT Format(dateserial(TYear ,TMonth, TDay),"dd/mm/yyyy") as dt FROM NDX_FULL;

此先行操作将首先确保字符必须是数字,并且如果匹配是\b[\d]{3}(?=\d)[^56][\d]{5}\b ^^^^^^ 5

,则将拒绝匹配

Demo 1

另一种解决方法是使用6代替[0-47-9]并使用此正则表达式,

[^56]

Demo 2