【发布时间】:2019-01-07 11:33:08
【问题描述】:
我尝试用.equals( 替换== 的模式。但是为了关闭括号 ) ,我面临一个问题,因为每次模式都可能不同。那么我应该考虑什么作为基本标准?
对于下面的代码,我编写的模式可以正常工作,但是当模式发生变化时,例如如果消息为:if ((var1 == null) || (var1.equals(""))) { var1 = "id";},那么我的代码就会失败。
message = '''if (var1 != null && var1 == "") var1 = null;'''
message = message.replace('==','.equals(')
result = re.sub('\&\&(.+?)\)', '\\1))', message)
我想要一个可以将== 修改为.equals() 而不会干扰变量和现有代码的模式。
【问题讨论】:
-
这不是正则表达式适合的东西。确定
==的第二个操作数并不简单,它取决于您无法在正则表达式中表示的运算符优先级等因素。 -
@jonrsharpe :所以我们可能得不到一个简单的模式??
-
与其说是 “可能不会”,不如说是 “如果可能的话,绝对不会”。
-
@jonrsharpe 谢谢
标签: python regex python-2.7