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

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


回答:

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匹配一个数字;

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


回答:

'gxsah22ui12jioj45jjo666'.match(/(\d)(?!\1)\d/g)

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


回答:

import re

print re.search(r'(\d)\1', '1233')


回答:

这样?(\d)(?!\1)\d

你试试 https://regex101.com/r/1IVQbM/1

以上是 正则表达式如何匹配两个相邻数字不一样? 的全部内容, 来源链接: utcz.com/a/61903.html

回到顶部