假设x = "hello_world_"
我希望匹配所有"_"
并以交替的方式将它们替换为1或2。例如,"hello_world_"
将成为"hello1world2"
。同样,"hello_world_how_are_you"
将成为"hello1world2how1are2you"
我还没有找到一个矢量化的sub版本,允许我传入一个替换字符串数组。这样的事情存在吗?
答案 0 :(得分:1)
搜索
_([^_]*)_
并将所有内容替换为
1${1}2 # exact syntax depends on the regex flavor/language used.
最后,对_
进行上一次搜索,并将其替换为1
,以防下划线数量奇数。
答案 1 :(得分:1)
蒂姆给出的答案将起作用,但仅适用于案文中偶数的下划线。如果您需要更通用的解决方案,我将分两步完成。首先在奇数位置找到并替换1个全部下划线。
正则表达式:_([^_]*_)?
替换表达式:1${1}
试试here。
然后用2:
查找并替换所有剩余的下划线正则表达式:_
替换表达式:2