2016-11-09 8 views
1

私は本当に貧しいHTML構造を持っているウェブサイトをスクレイピングしていると私はこのre.subのだけでも出現()に置き換え - Pythonの正規表現

例のようなテキスト取得しています:私はそれ欲しい

Creator: 
\r\r 
My Name 
\r\r 
Date created: 
\r\r 
123123 
<br><br> 
Title: 
\r\r 
Title here 
\r\r 

Creator: My Name 
\r\r 
Date created:123123 
Title:Title here 
\r\r 

のように見えるように私は、この正規表現_str = re.sub('\r+','',_str)を持っている。しかし、それはすべての\r

を置き換えるので、私はその間違ったを知っています210

re.sub()を反復処理する方法はありますか?または、私の目標を達成するにはどのような考えがありますか?

+0

が_STR = re.sub( '([^ \ R] +)試してみてください\ \\ 1 \\ 2 '、_str) – Skycc

+1

この関連する投稿を確認するhttp://stackoverflow.com/a/1732454/131057 –

答えて

3

あなたは交換のようなものを試してみてください:

: 
\r\r 

+0

申し訳ありません、説明それはいくつかのコードで – Umair

+0

're'( '[:] \ r +'、 ':'、_ str) 'あなたが望むものは': 'を持っているときです。それはこれを行う必要があります:

+0

私は申し訳ありませんので、 '名前:\ r \ rMy_Name \ r \ r'を'名前:My_Name \ r \ r'に変更する必要があります。 –

1

:によってそれが正規表現でなければなりませんか?

s1 = 'Creator:\r\rMy Name\r\rDate created:\r\r123123<br><br>Title:\r\rTitle here\r\r' 
s2 = ''.join(l + '\r\r' * (n % 3 == 1) for n, l in enumerate(s1.split('\r\r'))) 
// s2 == 'Creator:My Name\r\rDate created:123123<br><br>Title:Title here\r\r' 
2

あなただけの第二部で\r\rパターン+(次\r\rパターンを含む)、次のグループを置き換えることができます。

re.sub('\r+([^\r]+\r+)',r'\1',_str) 

(私は前方参照でそれを行うには好きだろうが、ここであなたは以下のパターンを消費するを持っている

関連する問題