首页 > 解决方案 > 正则表达式在记事本++中工作,但不在python中

问题描述

我在记事本++中尝试这个正则表达式(WVDC)((?:.*\r\n){1})并且它正在工作,但是当我在python中做同样的事情时它不会

文字是

Above 85°C the rated (DC/AC) voltage must be derated at per 1.5%/2.5%°C
WVDC: 400 Volts DC
SVDC: 600 Volts DC

蟒蛇代码

re.search(r'(WVDC)((?:.*\r\n){1})',txt)

标签: regex

解决方案


以下脚本在 Python 中为我工作:

input = """Above 85°C the rated (DC/AC) voltage must be derated at per 1.5%/2.5%°C
WVDC: 400 Volts DC
SVDC: 600 Volts DC"""

result = re.findall(r'(WVDC).*\r?\n', input)
print(result)

['WVDC']

请注意,我对正则表达式模式所做的唯一重大更改是使回车\r可选。因此,Python 中的多行字符串(可能是您的源代码使用的)似乎只带有换行符,但不带有回车符。无论如何,使用\r?\n匹配换行符通常是一个好主意,因为它可以同时覆盖 Unix 和 Windows 的行尾。


推荐阅读