我有一个带前缀的字符串,后跟至少一个可能为空的后缀的列表。后缀本身以冒号为前缀。前缀和后缀都不能包含任何冒号。
示例(1)为一个空后缀:
x:
示例(2)表示两个非空后缀(“a”和“b”)和一个空后缀:
x:a::b
此模式的regular expression为:
([^:]+)(:([^:]*))*
第一个匹配捕获前缀,第(3 + 2n)个匹配捕获后缀(n = [0,1,2,...])。
在我的替代品中,我想为每个后缀添加前缀。例(1)应该产生:
x
示例(2)应该产生:
xa
x
xb
如何指定替换表达式?
我的问题是,第一个替代品吃了前缀。之后,第二次更换不再看到前缀。我必须保留剩余替换的前缀。怎么办呢?
答案 0 :(得分:1)
我想我先提取前缀,然后再做第二次替换。这将使代码更容易阅读,并且在那时应该是一个简单的替换。