我有以下正则表达式:
>>> 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+
。
答案 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]