标签: regex
这只是一个学习练习。
我想匹配前两个电话号码。但不是最后3个。
在最后一个字母中,您有一个字母作为第三个字符。
[\d]{3}[^56][\d]{5}
这将选择不带5或6的那些。 但是它也会选择最后一个带有“ D”的数字。 我该如何解决呢?
据我所知,REGEX中没有AND运算符。
[\d]{3}([[^56]&[\d])[\d]{5} <-不存在
[\d]{3}([[^56]&[\d])[\d]{5}
答案 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
\b[\d]{3}(?=\d)[^56][\d]{5}\b ^^^^^^
5
Demo 1
另一种解决方法是使用6代替[0-47-9]并使用此正则表达式,
6
[0-47-9]
[^56]
Demo 2