gpt4 book ai didi

c++ - 如何区分AAA :BBB and AAA:BBB:CCC using regular expression?

转载 作者:行者123 更新时间:2023-11-28 00:47:40 25 4
gpt4 key购买 nike

假设有字符串

A:B:C A:B C:B C:D:E C:D:E:F

我想将所有匹配模式“X:Y”的子字符串替换为“X:0:Y”,在这个例子中,它应该是:

A:B:C A:0:B C:0:B C:D:E C:D:E:F

是否可以使用一个正则表达式替换来做到这一点?

最佳答案

替换:

(^|\s)(.):(.)(?=\s|$)

\1\2:0:\3

^|\s - 空白行的开始
. - 通配符
: - 冒号
. - 通配符
\s|$ - 空格或行尾
?= 是向前看的,否则 A:B C:D 不会同时匹配。

\1 - 括号中第一个内容的匹配字符串 - (^|\s)
\2 - 你放在括号中的第二个匹配字符串 - 第一个 (.)
\3 - 括号中的第三个匹配字符串 - 第二个 (.)

\1 等的常见替代方法是 $1

您也可以使用 \w(单词字符)代替 作为您的示例。

编辑:

从问题的标题来看,您可能想要匹配一个或多个 (+) 单词字符:

(^|\s)(\w+):(\w+)(?=\s|$)

编辑 2: 修复正则表达式以使用前瞻。

Boost test .

关于c++ - 如何区分AAA :BBB and AAA:BBB:CCC using regular expression?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com