他にも正規表現に関する質問がたくさんあることは知っていますが、誰かが私の正規表現の何が問題なのかを指摘してくれることを望んでいました。私はそれについていくつかの調査を行いましたが、うまくいくようです。私はそれをテストするためにルビュラーを使用しました。はい、それがルビーの正規表現であることは知っていますが、使用したのと同じルールがpython docsのように見えるものから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
誰かが私が間違っていることを理解するのを手伝ってくれますか?