此问题已在此处有答案:
How to capture words with letters separated by a consistent symbol in Python regex?(2个答案)
8小时前关闭
是否有一个正则表达式模式,它将有一个允许的分隔符列表,但强制它们必须相同?
例如,我将使用MAC地址:
xx:xx:xx:xx:xx:xx(允许)
xx-xx-xx-xx-xx-xx(允许)
xx:xx-xx:xx-xx:xx(不允许)
我目前正在使用这个:
[RegularExpression("^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2}){1}$")]
2条答案
按热度按时间z2acfund1#
可以使用捕获组和反向引用:
Demo
tpgth1q72#
可以使用捕获组和反向引用:
^
字符串开头[0-9A-Fa-f]{2}
重复字符类2次(?=([:-]))
正向预测,Assert并捕获:
或-
(?:\1[0-9A-Fa-f]{2}){5}
对组1中最初捕获的内容重复5次反向引用\1
,然后重复2次字符类$
字符串结束Regex demo
如果支持,也可以使用不区分大小写的内联修饰符: