用于忽略字符串中括号的正则表达式

2024-05-21 08:19:52 发布

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

这是这样一个字符串:

strs = "Tierd-Branden This is (L.A.) 105  / New (Even L.A.A)"

在尝试以下代码之后,我没有得到预期的输出。你知道吗

这是我的密码:

import re, itertools
strs = "Tierd-Branden This is (U.C.) 105  / New (Even L.A.A)"
print re.findall(r"[\w']+[\w\.]", strs)

我希望这样:

['Tierd', 'Branden', 'This', 'is', 'L.A.', '105', 'New', 'Even', 'L.A.A']

但是,我明白了:

['Tierd', 'Branden', 'This', 'is', 'L.', 'A.', '105', 'New', 'Even', 'L.', 'A.']

我的问题是如何保持括号中的内容作为列表元素链接?你知道吗


Tags: 字符串代码importre密码newisthis
2条回答

[\w']+[\w\.]模式匹配一个或多个单词或'字符,然后匹配一个单词或.字符。因此,它不能匹配单词块或'字符中超过1个点。你知道吗

我建议使用

r"\w[\w'.]*"

参见regex demoRegulex graph

enter image description here

细节

  • \w-单词字符
  • [\w'.]*-0个或更多单词、'.字符。你知道吗

This RegEx可能会返回所需的输出,只需在[]中列出所需的所有字符即可。如果您愿意,您可以使用一个捕获组,只需使用$1来调用它即可。您可以在[]中添加您希望/拥有的任何其他字符,如果这些字符可能是元字符,则可以使用\进行转义。你知道吗

([A-Za-z0-9\.]+)

enter image description here

您可以删除捕获组,但它可能仍然有效:

[A-Za-z0-9\.]+

相关问题 更多 >