从第一场比赛的偏移开始第二场比赛

时间:2014-10-24 05:12:47

标签: php regex preg-match-all

我需要链接上一场比赛最后一次偏移的第二场比赛。想象一下,我有:

id, name

我将使用preg_match_all()来捕获idname(逗号分割),这样我就可以使用LIKE THIS

\s* (\w+) \s* (?:,|$)

它适用于我之前的例子。但如果我这样做:

invalid example

它匹配example。在这种情况下我不想匹配,因为只有当所有数据都匹配时才需要接受(空格是我的正则表达式中不允许的组)。

为了解决这个问题,我认为可以使用行锚的起点LIKE THIS

^ \s* (\w+) \s* (?:,|$)

所以我之前的示例现在不匹配(它是正确的),但我的第一个示例将失败,因为name将不匹配,一旦它不是行的开头。

实施例

  • id仅需匹配id;
  • id, name需要匹配idname;
  • will fail需要失败;
  • will, fail too也需要失败;

More examples here..

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式匹配所有输入,后跟,或使用preg_match_all函数输入结束:

[^,] +.*$(*SKIP)(*F)|(\w+)(?=(?:, \w+)*$)

RegEx Demo