正则表达式:连续匹配失败

时间:2016-06-14 10:48:40

标签: python regex

使用正则表达式

[^a-zA-Z]([A-Z][&+-\/\\][A-Z](([&+-\/\\][A-Z])+[^a-zA-Z\d:]))

并且想要匹配由符号描绘的字母,表达式实现成功匹配,但无法正确匹配紧跟正确匹配的模式。请注意,它在执行时不区分大小写。

例如在示例中

  

披萨a.b.c C / A / R / L关于R / O / F / L s

a.b.c和R / O / F / L正确匹配,但C / A / R / L仅部分匹配(A / R / L)。怎么解决这个问题?

下面是一个regex101模型:但令人困惑的是,它似乎没有表现出与我看到的相同的行为。

https://www.regex101.com/r/zV8wI0/1

1 个答案:

答案 0 :(得分:1)

您可以使用

\b[a-zA-Z](?:[./][A-Za-z])*\b

请参阅regex demo

如果您不需要匹配整个单词,请删除\b(字边界)。

<强>解释

  • \b - 领先的字边界
  • [a-zA-Z] - 1封信
  • (?:[./][A-Za-z])* - 零个或多个序列(注意:如果您需要至少一个./replace * with a +):
    • [./] - 一个点或/符号
    • [A-Za-z] - 1封信
  • \b - 尾随字边界

如果您需要匹配c.a中的r.lc.a/r.l,则需要使用类似

的内容
\b[a-zA-Z](?:(?:\.[A-Za-z])+|(?:/[A-Za-z])+)\b

请参阅another regex demo