如何在python的字符串每一侧只匹配相同字符(最多3个)的相同数字?
例如,假设我试图匹配等号
=abc=
或==abc==
或===abc===
但不是
=abc==
或==abc=
等
我想出了如何处理每个案例,但似乎无法完成所有这些案例。
(={1}(?=abc={1}))abc(={1})
为同一角色的|
((={1}(?=abc={1}))|(={2}(?=abc={2})))abc(={1}|={2})
似乎不起作用。
答案 0 :(得分:4)
使用以下正则表达式:
^(=+)abc\1$
编辑:
如果您只讨论最多三个=
^(={1,3})abc\1$
答案 1 :(得分:2)
这不是常规语言。但是,您可以使用反向引用来执行此操作:
(=+)[^=]+\1
答案 2 :(得分:0)
考虑样本是单个字符串,这是非正则表达式方法(在许多其他方法中)
>>> string="===abc==="
>>> string.replace("abc"," ").split(" ")
['===', '===']
>>> a,b = string.replace("abc"," ").split(" ")
>>> if a == b:
... print "ok"
...
ok
你说你希望在每一方都匹配相同的字符,所以不管是哪个字符,你只需要检查a
和b
是否相等。
答案 3 :(得分:0)
您将要使用后退参考。查看这篇文章的示例: