用于忽略字符串中括号的正则表达式
RegEx for ignoring parentheses in a string
这些是这样的字符串:
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.']
我的问题是如何将 . 的括号内容作为列表元素链接起来?
[\w']+[\w\.]
模式匹配 1 个或多个单词或 '
个字符,然后匹配一个单词或 .
个字符。因此,它无法匹配单词块或 '
中包含超过 1 个点的字符。
我建议使用
r"\w[\w'.]*"
参见regex demo and a Regulex graph:
详情
\w
- 一个字 char
[\w'.]*
- 0 个或多个单词,'
和 .
个字符。
This RegEx 可能 return 您想要的输出,您可以简单地在 [] 中列出所有您想要的字符。如果愿意,您可以使用捕获组,只需使用 $1 即可简单地调用它。您可以在 [] 中添加您可能 wish/have 的任何其他字符,如果这些字符可能是元字符,您可以使用 \ 用于逃跑。
([A-Za-z0-9\.]+)
您可以删除捕获组,它可能仍然有效:
[A-Za-z0-9\.]+
这些是这样的字符串:
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.']
我的问题是如何将 . 的括号内容作为列表元素链接起来?
[\w']+[\w\.]
模式匹配 1 个或多个单词或 '
个字符,然后匹配一个单词或 .
个字符。因此,它无法匹配单词块或 '
中包含超过 1 个点的字符。
我建议使用
r"\w[\w'.]*"
参见regex demo and a Regulex graph:
详情
\w
- 一个字 char[\w'.]*
- 0 个或多个单词,'
和.
个字符。
This RegEx 可能 return 您想要的输出,您可以简单地在 [] 中列出所有您想要的字符。如果愿意,您可以使用捕获组,只需使用 $1 即可简单地调用它。您可以在 [] 中添加您可能 wish/have 的任何其他字符,如果这些字符可能是元字符,您可以使用 \ 用于逃跑。
([A-Za-z0-9\.]+)
您可以删除捕获组,它可能仍然有效:
[A-Za-z0-9\.]+