剥离正则表达式上的开始/结束字符

时间:2015-01-27 22:41:10

标签: python regex

我有以下正则表达式:

>>> re.findall(r'\r\n\d+\r\n',contents)[-1]
'\r\n1621\r\n'
>>> re.findall(r'\r\n\d+\r\n',contents)[-1].replace('\r','').replace('\n','')
'1621'

我如何改进正则表达式,以便我不需要使用python replace方法?

请注意,数字必须用这些字符包围,我不能直接\d+

3 个答案:

答案 0 :(得分:2)

只需使用括号:

re.findall(r'\r\n(\d+)\r\n',contents)[-1]

这样您匹配给定的模式,只获得findall结果中的括号内容。

答案 1 :(得分:0)

user 5061回答很棒。
您可以使用.strip()删除那些"\r\n"个特殊字符。

re.findall(r'\r\n\d+\r\n',contents)[-1].strip()

答案 2 :(得分:0)

您可以使用前瞻和后退断言:

re.findall(r'(?<=\r\n)\d+(?=\r\n)',contents)[-1]