2017-02-27 5 views
0

私は2つの異なる方法で置き換えたいPythonパターンを持っています。置換パターンで正規表現を使用する

Pattern: <br><b>[Ss][1-2]:[0-9]*- 
1)replace by " " 
2)replace s/S by Author 

それは簡単に交換であるように私は、最初のものを行うことができますが、私はそれが入力パターンに依存し、表現の一部のみを交換する必要があるとして、私は第2置換を行うことができますどのように確認していません。

これはケース1の場合、空白で置き換えます。

text="<br><b>S1:2- you are wrong. I don't think so. <br><b>S2:2- you are wrong" 
newtext=re.sub("(<br><b>[Ss][1-2]:[0-9]*-)\s*", ' ',text) 
print(newtext) 

置換文字列に変数式を含めることはできますか?

置き換えテキスト

<br><b>Author1:2- you are wrong. I don't think so. <br><b>Author2:2- you are wrong 
+0

あなたは、第二のユースケースのための試料交換を与えることができます –

答えて

4

あなたは、ルックアラウンド構文を使用することがあります。

import re 
text="<br><b>S1:2- you are wrong. I don't think so. <br><b>S2:2- you are wrong" 
re.sub("(?<=<br><b>)[Ss](?=[1-2]:[0-9]*-\s*)", 'Author',text) 
# "<br><b>Author1:2- you are wrong. I don't think so. <br><b>Author2:2- you are wrong"