匹配每个以特定单词开头且未由 space 分隔的单词中特定字符的所有实例
Match all instances of a certain character inside every word preceded by a certain word and not delimited by a space
给定如下字符串:
word.hi。布拉。单词。
我想构建一个匹配所有“."s preceded by "word”和任何其他非 space 字符的正则表达式
因此,在上面的示例中,我希望匹配第一个、第二个和最后一个点。
虽然使用全局标志 (/(?:word.*)\K./gU) 可以很容易地匹配第一个点和最后一个点,但我不确定如何构建一个也可以匹配第二个点的正则表达式点.
感谢任何指点。
您可能会匹配 word,然后使用 \G
锚获取所有连续的匹配,不包括匹配的空白字符或点。
(?:\bword|\G(?!\A))[^.\s]*\K\.
部分
(?:
非捕获组
\bword
匹配 word
前面有单词边界
|
或
\G(?!\A)
断言上一场比赛结束时的位置,而不是开始
)
关闭非捕获组
[^.\s]*
匹配除 .
或空白字符 之外的任何字符的 0+ 次出现
\K
清空匹配缓冲区(忘记之前匹配的是什么)
\.
匹配一个点
给定如下字符串:
word.hi。布拉。单词。
我想构建一个匹配所有“."s preceded by "word”和任何其他非 space 字符的正则表达式
因此,在上面的示例中,我希望匹配第一个、第二个和最后一个点。
虽然使用全局标志 (/(?:word.*)\K./gU) 可以很容易地匹配第一个点和最后一个点,但我不确定如何构建一个也可以匹配第二个点的正则表达式点.
感谢任何指点。
您可能会匹配 word,然后使用 \G
锚获取所有连续的匹配,不包括匹配的空白字符或点。
(?:\bword|\G(?!\A))[^.\s]*\K\.
部分
(?:
非捕获组\bword
匹配word
前面有单词边界|
或\G(?!\A)
断言上一场比赛结束时的位置,而不是开始
)
关闭非捕获组[^.\s]*
匹配除.
或空白字符 之外的任何字符的 0+ 次出现
\K
清空匹配缓冲区(忘记之前匹配的是什么)\.
匹配一个点