仅替换偶数出现的re.sub() - Python Regex

时间:2016-11-09 13:56:09

标签: python regex

我正在抓取一个HTML结构非常糟糕的网站,我正在收到这样的文字

示例:

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

有没有办法迭代re.sub()?或者你有任何想法我如何实现我的目标?

3 个答案:

答案 0 :(得分:3)

你应该尝试更换:

:
\r\r

:

答案 1 :(得分:2)

您可以仅将for $x in library/book where $x/about = "Programming" return data (library/author[@ID=$x/author/@ref]) 模式+下一组(包括下一个\r\r模式)替换为第二部分。

\r\r

(我希望通过正向查找来实现,但在这里 使用以下模式)

答案 2 :(得分: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'