Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在记事本中工作的正则表达式++;但不是用python_Regex - Fatal编程技术网

Regex 在记事本中工作的正则表达式++;但不是用python

Regex 在记事本中工作的正则表达式++;但不是用python,regex,Regex,我正在记事本++中尝试这个正则表达式(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 python代码 re.search(r'(WVDC)((?:.*\r\n){1})',txt) 以下脚本在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
python代码

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

以下脚本在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']

注意,我对regex模式所做的唯一实质性更改是使回车
\r
可选。因此,Python中的多行字符串(可能是源代码使用的字符串)似乎只携带换行符,而不携带回车符。在任何情况下,使用
\r?\n
匹配换行符通常是一个好主意,因为它可以同时覆盖Unix和Windows的行尾。

以下脚本在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']

注意,我对regex模式所做的唯一实质性更改是使回车
\r
可选。因此,Python中的多行字符串(可能是源代码使用的字符串)似乎只携带换行符,而不携带回车符。在任何情况下,使用
\r?\n
匹配换行符通常是一个好主意,因为它可以同时覆盖Unix和Windows的行尾。

您没有展示一个可复制的示例,但是在Python中以文本模式打开文件将
\r\n
转换为
\n
。记事本++保留精确的行尾


从正则表达式中删除
\r
(或使其成为可选的)应该可以解决Python中的问题。您也可以以二进制模式打开文件,但建议以文本模式处理文本。

您没有显示可复制的示例,但以Python文本模式打开文件会将
\r\n
转换为
\n
。记事本++保留精确的行尾


从正则表达式中删除
\r
(或使其成为可选的)应该可以解决Python中的问题。您也可以以二进制模式打开文件,但建议以文本模式处理文本。

尝试删除
\r
。Python中的代码是什么样子的?您是否逐行阅读?@IldarAkhmetov,删除返回的结果,但为什么它不起作用?将
((?:.*\r\n){1})替换为
(.*\n)
,下面有一些很好的答案,但是在这里您可以找到更多信息:尝试删除
\r
。Python中的代码是什么样的?您是否逐行阅读?@IldarAkhmetov,删除返回的结果,但它为什么不起作用?请将
((?:.*\r\n){1})
替换为
(.*\n)
下面有一些很好的答案,但是在这里您可以找到有关这方面的更多信息: