Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
706 views
in Technique[技术] by (71.8m points)

正则表达式如何匹配两个相邻数字不一样?

想匹配链两个字符:MN
M和N都是0-9之间的数字,但是M不等于N,这个正则表达式应该怎么写呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

js写法/^(d)(?!1)d$/

var reg = /^(d)(?!1)d$/
reg.test('123') // false
reg.test('12') // true
reg.test('11') // false

知识点:

  1. 捕获型括号和反向引用,使用(d)捕获第一个数字字符,使用反向引用1引用实际匹配到的第一个字符;
  2. 断言,?!表示后面不能匹配的内容,(?!1)表示该位置不能匹配前面的字符;
  3. 最后一个d匹配一个数字;

所以整个正则表示匹配两个数字,且第二个数字不等于第一个数字。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...