在Python中,我试图使用一个正则表达式来替换所有小于(<)和小于等于(< =)的表达式,其等价物大于(>)或大于或等于当量。例如," a< B"将替换为" b>一个&#34 ;.我相信正则表达式的代码是正确的(如下所示),但我不知道如何进行代码的替换部分。由于正则表达式已分组,因此我必须使用反向引用才能访问要切换的表达式的各个部分。
c = re.compile(r"\b(\w+)\s*"
r"((<)|(>)|(<=)|(>=))"
r"\s*(\w+)\b")
subStr = r"\7 #WHAT GOES HERE \1"
我可以使用\ 7来获取&#34;字&#34;在条件运算符的右侧,\ 1得到左侧的一个。如何翻转操作符???
要实际使用替换,我使用的格式为:
print(c.sub(subStr, "a < b"))
另外,我知道我不必在这里使用正则表达式,但我正在尝试使用正则表达式。
答案 0 :(得分:1)
您可以使用re.sub中的函数执行以下操作:
import re
txt='''\
a<b
a<=b'''
di={'<':'>', '<=':'>='} # expand as needed
print re.sub(r'\b(\w+\s*)(<|<=)(\s*\w+)', # use your regex if wanted
lambda m: m.group(3)+di[m.group(2)]+m.group(1), txt)
打印:
b>a
b>=a