这些是这样的字符串:
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.']
我的问题是如何用 。 链接为列表元素来保持括号的内容?
答案 0 :(得分:1)
[\w']+[\w\.]
模式匹配1个或多个单词或'
字符,然后匹配一个单词或.
字符。因此,它无法匹配单词或其中包含超过1个点的'
字符的块。
我建议使用
r"\w[\w'.]*"
详细信息
\w
-单词char [\w'.]*
-0个或更多单词,'
和.
个字符。答案 1 :(得分:0)
This RegEx可能会返回您想要的输出,您只需在 [] 中列出所有想要的字符即可。如果需要,您可以使用捕获组,仅使用 $ 1 对其进行调用即可。您可以在 [] 中添加希望的所有其他字符,如果这些字符可能是元字符,则可以使用 \ 进行转义。
([A-Za-z0-9\.]+)
您可以删除捕获组,但它仍可能起作用:
[A-Za-z0-9\.]+