首页 > 解决方案 > RegEx 用于忽略字符串中的括号

问题描述

这是一个像这样的字符串:

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.']

我的问题是如何将括号的内容与.链接作为列表元素保持一致?

标签: pythonregexregex-lookaroundsregex-groupregex-greedy

解决方案


[\w']+[\w\.]模式匹配 1 个或多个单词或'字符,然后匹配一个单词或.字符。因此,它无法匹配'包含超过 1 个点的单词或字符块。

我建议使用

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

请参阅正则表达式演示和正则

在此处输入图像描述

细节

  • \w- 一个字字符
  • [\w'.]*- 0 个或多个单词'.字符。

推荐阅读