在 'Divider' 之后全局替换所有连字符
Globally replace all hyphens after some 'Divider'
向专家问好,我正在寻找 PCRE match/replace 来执行以下操作...
a-b-Divider-Any-Text ----> a-b-Divider__Any__Text
a-b-c-分频器-w-x-y-z ---> a-b-c-分频器__w__x__y__z
a-b-c-d-e-f-g-h-i-j ------> a-b-c-d-e-f-g-h-i-j (没有替换,因为没有 Divider)
所以基本上,我只是想全局替换 分隔符后的所有连字符。
如果在分隔符 之前替换连字符 ,我只使用类似 -(?=.*Divider.*)/g
的东西
但是将其更改为负先行也匹配文本 without the Divider.
我能否以某种方式在全局匹配所有剩余连字符的同时验证 'Divider'?
你可以使用
(?:\G(?!\A)|Divider)[^-]*\K-
参见regex demo。 详情:
(?:\G(?!\A)|Divider)
- 前一场比赛结束或 Divider
[^-]*
- -
以外的零个或多个字符
\K
- 丢弃到目前为止匹配的文本的匹配重置运算符
-
- 一个连字符。
向专家问好,我正在寻找 PCRE match/replace 来执行以下操作...
a-b-Divider-Any-Text ----> a-b-Divider__Any__Text
a-b-c-分频器-w-x-y-z ---> a-b-c-分频器__w__x__y__z
a-b-c-d-e-f-g-h-i-j ------> a-b-c-d-e-f-g-h-i-j (没有替换,因为没有 Divider)
所以基本上,我只是想全局替换 分隔符后的所有连字符。
如果在分隔符 之前替换连字符 ,我只使用类似 -(?=.*Divider.*)/g
的东西
但是将其更改为负先行也匹配文本 without the Divider.
我能否以某种方式在全局匹配所有剩余连字符的同时验证 'Divider'?
你可以使用
(?:\G(?!\A)|Divider)[^-]*\K-
参见regex demo。 详情:
(?:\G(?!\A)|Divider)
- 前一场比赛结束或Divider
[^-]*
--
以外的零个或多个字符
\K
- 丢弃到目前为止匹配的文本的匹配重置运算符-
- 一个连字符。