仅在字符序列之后出现正则表达式匹配
Regex match occurrences only after character sequence
我想查找此字符串中出现的 w 之后的所有字符,但只查找 foo
之后的字符
edward woodward foo edward woodward
/(?<=w)./g
给我 6 场比赛
edward woodward foo edw ard woodward
我只想要 foo
之后发生的 3 场比赛。我将如何修改正则表达式以缩小搜索范围?
您可以将以下正则表达式与 PCRE 引擎一起使用:
(?:\bfoo\b|\G(?!^))[^w]*w\K.
参见regex demo。
详情
(?:\bfoo\b|\G(?!^))
- 整个单词 foo
(\bfoo\b
) 或 (|
) 上一场比赛的结尾 (\G(?!^)
)
[^w]*
- w
以外的任何 0+ 个字符
w
- 一个 w
字符
\K
- 匹配重置运算符丢弃目前匹配的所有文本
.
- 任何字符(换行字符除外,如果您需要将它们与 .
匹配,请在模式开头添加 (?s)
或将 .
替换为(?s:.)
)
我想查找此字符串中出现的 w 之后的所有字符,但只查找 foo
edward woodward foo edward woodward
/(?<=w)./g
给我 6 场比赛
edward woodward foo edw ard woodward
我只想要 foo
之后发生的 3 场比赛。我将如何修改正则表达式以缩小搜索范围?
您可以将以下正则表达式与 PCRE 引擎一起使用:
(?:\bfoo\b|\G(?!^))[^w]*w\K.
参见regex demo。
详情
(?:\bfoo\b|\G(?!^))
- 整个单词foo
(\bfoo\b
) 或 (|
) 上一场比赛的结尾 (\G(?!^)
)[^w]*
-w
以外的任何 0+ 个字符
w
- 一个w
字符\K
- 匹配重置运算符丢弃目前匹配的所有文本.
- 任何字符(换行字符除外,如果您需要将它们与.
匹配,请在模式开头添加(?s)
或将.
替换为(?s:.)
)