python正则表达式中的一些差异

2024-07-03 05:51:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python正则表达式来查找文件中的构造。当我检查组时,输出会向我的输出中添加额外的字符串

我提供了我的初步问题,在此基础上我有一些其他的依赖关系

import re
pattern = reg = r"(.*) \((.*) (.*) (.*) (.*) (.*)\).*NCH.*"
sentence = test = 'MN0 (\4\:y \5\:c1 n0 \3\:vbbpw \3\:vbbpw) NCH 
m=1 '
check = re.match(pattern,sentence)
check.group(0)

我想

'MN0 (\4\:y \5\:c1 n0 \3\:vbbpw \3\:vbbpw) NCH m=1 ', 

但我最终得到的是

'MN0 (\x04\\:y \x05\\:c1 n0 \x03\\:vbbpw \x03\\:vbbpw) NCH m=1 '

在输入字符串中的所有数字之前追加x0的原因吗


Tags: 字符串importre关系checkregsentencepattern
1条回答
网友
1楼 · 发布于 2024-07-03 05:51:40

原因是sentence变量中的字符串不是原始字符串。这意味着\4\5等被视为具有适当ascii码的字符('\x04''\x05'…)。将r放在字符串前面:

import re
pattern = reg = r"(.*) \((.*) (.*) (.*) (.*) (.*)\).*NCH.*"
sentence = test = r'MN0 (\4\:y \5\:c1 n0 \3\:vbbpw \3\:vbbpw) NCH m=1 '
check = re.match(pattern,sentence)
print(check.group(0))

印刷品:

MN0 (\4\:y \5\:c1 n0 \3\:vbbpw \3\:vbbpw) NCH m=1 

相关问题 更多 >