2016-06-14 62 views
1

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

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

,并希望以匹配符号描绘字母,表达达到成功的比赛,但未能正确地匹配紧跟正确的匹配模式。请注意,它在执行时不区分大小写。

例如,在该示例

比萨饼ABC C/A/R/L左右R/O/F/L小号

ABC和R/O/F/L是正确匹配,但C/A/R/L仅部分匹配(A/R/L)。这怎么解决?

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

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

+1

尝试['\ b [a-zA-Z](?:[./] [A-Za-z])* \ b'](https://www.regex101.com/r/aQ0sU0/ 1)。 –

+0

@WiktorStribiżew这是正确的答案(需要为我的目的进行一点编辑,但回答了问题) – Stumbler

回答

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.ar.l,你需要使用的东西像

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

another regex demo