我知道有很多其他的正则表达式问题,但我希望有人能指出我的正则表达式有什么问题。我已经做了一些研究,看起来它应该可以工作。我用rubular测试过它,是的,我知道那是ruby的正则表达式,但我使用的规则应该适用于python,就像在python文档中所描述的那样。
目前我有
但我希望它能返回
但是我遇到了这个错误。
目前我有
a = ["SDFSD_SFSDF234234","SDFSDF_SDFSDF_234324","TSFSD_SDF_213123"]
c = [re.sub(r'[A-Z]+', "", x) for x in a]
这个函数返回
['SDFSD_SFSDF', 'SDFSDF_SDFSDF_', 'TSFSD_SDF_']
但我希望它能返回
['SDFSD_SFSDF', 'SDFSDF_SDFSDF', 'TSFSD_SDF']
我尝试使用这个正则表达式
c = [re.sub(r'$?_[^A-Z_]+', "", x) for x in a]
但是我遇到了这个错误。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/re.py", line 151, in sub
return _compile(pattern, 0).sub(repl, string, count)
File "/usr/lib64/python2.6/re.py", line 245, in _compile
raise error, v # invalid expression
有人能帮我找出我做错了什么吗?
c
应该是['_234234', '__234324', '__213123']
。 - arshajii