给定如下字符串:
单词。嗨。布拉。单词
我想构建一个正则表达式,它将匹配所有以"word"开头的"."和任何其他非空格字符
因此,在上面的例子中,我希望第一个、第二个和最后一个点匹配。
虽然使用全局标志(/(?:word.*(\K./gU(可以很容易地匹配第一个点和最后一个点,但我不知道如何构建一个也匹配第二个点的正则表达式。
感谢任何指点。
您可以匹配word,然后使用G
锚点获得所有连续匹配,不包括匹配的空白字符或点。
(?:bword|G(?!A))[^.s]*K.
部件内
(?:
非捕获组bword
匹配前面有单词边界的word
|
或G(?!A)
在上一场比赛结束时确定位置,而不是在比赛开始时
)
关闭非捕获组[^.s]*
匹配除.
或空白字符之外的任何字符的0+次出现K
清除匹配缓冲区(直到现在忘记匹配的内容(.
匹配一个点
Regex演示