說有字符串如何區分AAA:BBB和AAA:BBB:使用正則表達式的CCC?
A:B:C 答:BC:乙 C:d:EC:d:電子:F
我想替換匹配模式「X其中所有子串: Y「到」X:0:Y「,在本例中應該是:
A:B:C A:0:BC:0:B C:D:EC:D:E:F
是否可以使用一個正則表達式替換它?
說有字符串如何區分AAA:BBB和AAA:BBB:使用正則表達式的CCC?
A:B:C 答:BC:乙 C:d:EC:d:電子:F
我想替換匹配模式「X其中所有子串: Y「到」X:0:Y「,在本例中應該是:
A:B:C A:0:BC:0:B C:D:EC: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:固定的正則表達式使用預見。
學習正則表達式'\ b' – 2013-03-27 18:10:41
@Sanya_Zol'\ b'匹配':',所以它不能按需要工作。 – Dukeling 2013-03-27 18:12:56
正則表達式本身沒有替換,爲此給了更多infos:language,platform ... – 2013-03-27 17:58:06
謝謝,我使用boost :: regex。 – camino 2013-03-27 18:14:45