匹配每个单词中某个字符的所有实例,每个单词前面都有某个单词,并且没有空格分隔



给定如下字符串:

单词。嗨。布拉。单词

我想构建一个正则表达式,它将匹配所有以"word"开头的"."和任何其他非空格字符

因此,在上面的例子中,我希望第一个、第二个和最后一个点匹配。

虽然使用全局标志(/(?:word.*(\K./gU(可以很容易地匹配第一个点和最后一个点,但我不知道如何构建一个也匹配第二个点的正则表达式。

感谢任何指点。

您可以匹配word,然后使用G锚点获得所有连续匹配,不包括匹配的空白字符或点。

(?:bword|G(?!A))[^.s]*K.

部件内

  • (?:非捕获组
    • bword匹配前面有单词边界的word
    • |
    • G(?!A)在上一场比赛结束时确定位置,而不是在比赛开始时
  • )关闭非捕获组
  • [^.s]*匹配除.或空白字符之外的任何字符的0+次出现
  • K清除匹配缓冲区(直到现在忘记匹配的内容(
  • .匹配一个点

Regex演示

最新更新