正则表达式匹配字符串每一侧相同数字的相同字符

时间:2011-04-28 02:31:17

标签: python regex

如何在python的字符串每一侧只匹配相同字符(最多3个)的相同数字?

例如,假设我试图匹配等号

=abc===abc=====abc===

但不是

=abc====abc=

我想出了如何处理每个案例,但似乎无法完成所有这些案例。

(={1}(?=abc={1}))abc(={1})

为同一角色的|

((={1}(?=abc={1}))|(={2}(?=abc={2})))abc(={1}|={2})

似乎不起作用。

4 个答案:

答案 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

你说你希望在每一方都匹配相同的字符,所以不管是哪个字符,你只需要检查ab是否相等。

答案 3 :(得分:0)

您将要使用后退参考。查看这篇文章的示例:

Regex, single quote or double quote