我想匹配<>=/*+-
除=
和以外的所有组合=>
。我怎样才能做到这一点?
r = re.compile(r'[<>=/*+-]+')
这会匹配集合中的一个或多个字符,但我不知道如何防止它匹配=
或=>
模式。我猜想这与负面的前瞻性或后顾之忧有关,但我很难把头缠在那。
澄清:我真的想匹配<>=/*+-
除=
和以外的所有字符组合=>
。换句话说,我想找到仅由这些字符组成的最大长度连续子字符串-如果子字符串等于=
或=>
,则不应将其视为匹配项。
抱歉,我没有早点澄清,但这似乎是一个足够简单的问题陈述,不需要额外的澄清。
示例案例:
pow pow -> bah bah
包含比赛 ->
a +++->* b // c
包含匹配项+++->*
和//
=> 3 <= 4 = 5 == 6
包含匹配<=
和==
(记住,=
而=>
不是匹配)a <=> b <@> c
包括比赛<=>
和<
与>
---= =---
包含匹配项---=
和=---
编辑:实施以下abarnert的建议:
我将其分为两部分:
第一部分将返回所有匹配项的列表-包括您不希望匹配的“ =>”和“ =”。
p1 = re.compile(r'[<>=/*+-]+')
第二部分将过滤掉这些匹配项。
all_matches = p1.finditer(your_string)
matches = [match.group() for match in all_matches if match.group() not in ('=', '=>')]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句