python中的错误字符regexp

2024-09-29 01:37:41 发布

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

我有一根绳子

1563:37say: 0 kl4|us: !!alias kl4

我需要提取一些信息。我正在尝试使用以下Python代码:

 import re
 x = "1563:37say: 0 kl4us: !!alias kl4"
 res = re.search( r"(?P<say>say(team)?): (?P<id>\d+) (?P<name>\w+): (?P<text>.*)",x)

 slot= res.group("id")
 text = res.group("text")
 say = res.group("say")
 name = res.group("name")

这个代码很好用。为什么我的字符串中有一个字符|*这个regexp不起作用?你知道吗

例如:

 import re
 x = "1563:37say: 0 kl4|us: !!alias kl4"
 res = re.search( r"(?P<say>say(team)?): (?P<id>\d+) (?P<name>\w+): (?P<text>.*)",x)

 slot= res.group("id")
 text = res.group("text")
 say = res.group("say")
 name = res.group("name")

有人能帮我吗?你知道吗

多谢了


Tags: 代码textnameimportreidsearchgroup
1条回答
网友
1楼 · 发布于 2024-09-29 01:37:41

根据添加“|”的位置,看起来“|”和“*”应该由\w匹配,但是\w只匹配字母、数字和“|”。要同时匹配这些字符,请将\w更改为[\w|*]

res = re.search( r"(?P<say>say(team)?): (?P<id>\d+) (?P<name>[\w|*]+): (?P<text>.*)",x)

相关问题 更多 >