正则表达式如何匹配两个相邻数字不一样?
想匹配链两个字符: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
知识点:
- 捕获型括号和反向引用,使用
(\d)
捕获第一个数字字符,使用反向引用\1
引用实际匹配到的第一个字符; - 断言,
?!
表示后面不能匹配的内容,(?!\1)
表示该位置不能匹配前面的字符; - 最后一个
\d
匹配一个数字;
所以整个正则表示匹配两个数字,且第二个数字不等于第一个数字。
回答:
'gxsah22ui12jioj45jjo666'.match(/(\d)(?!\1)\d/g)
回答:
import reprint re.search(r'(\d)\1', '1233')
回答:
这样?(\d)(?!\1)\d
你试试 https://regex101.com/r/1IVQbM/1
以上是 正则表达式如何匹配两个相邻数字不一样? 的全部内容, 来源链接: utcz.com/a/61903.html