2017-12-04 6 views
0

Pythonでregexを使用して文字列を置き換えようとしています。 "SERVERS"を文字列の "SERV"に置き換えたいと思います)。正規表現の検索パターン内で ")"を無効にする

example_String = "This is a great SERVERS)" 

re.sub("SERVERS)","SERV", example_String) 

は、私はそれがまっすぐ前方にスワップことが期待が、私はエラーに続きを読むと、私は「)」通常の文字としてではなく、特殊なを読むために正規表現パターンを設定する必要があるように、それが見えます正規表現文字。

私はあまり正規表現に精通しておらず、助けていただければ幸いです!

編集:データベース(ユーザー入力)からデータをインポートしていますが、質問に記載されているような問題がかなりあります。 re.escape()は法案に完全に合っています、ありがとう!

答えて

1

あなたは

This is a great SERV 


は正直に言うと得

import re 

example_String = "This is a great SERVERS)" 
new_string = re.sub(r"SERVERS\)","SERV", example_String) 
print(new_string) 

のために行くことができ、何の正規表現は、実際に、必要ありません。後者で

example_String = "This is a great SERVERS)" 
new_string = example_String.replace('SERVERS)', 'SERV') 
print(new_string) 

、あなたは何かをエスケープする必要もなく、速くなるでしょう。

+2

ユーザーが 'SERVERS 'を入力した場合は、pythonの[re.escape()'](https://stackoverflow.com/questions/280435/escaping-regex-string-in-python)を使用して、方法 – ctwheels

関連する問題