对于给定的文本
包装:我的五打盒装:酒:罐子:::
我想用只出现在ack和zen之后的:替换所有的;所以我期望的结果是
包装:我的五盒;打:酒;水壶;
注意,ack和zen之后的:是未触及的,而其他的都被替换掉了。
请帮帮我我只能匹配(ack|zen):。这只是给我匹配的ack:zen:我不知道如何否定这一点并构造一个正则表达式。
注意:我用的是Ruby。

最佳答案

你可以用否定的眼光看后面,然后用gsub

puts "pack: my box with five: dozen: liquor: jugs ::: :".gsub(/(?<!ack|zen):/, ";")

IDEONE DEMO
结果:
pack: my box with five; dozen: liquor; jugs ;;; ;

您可以使用后面的查找,因为这两个部分的大小相同(3个字符)。

关于ruby - 替换在特定单词模式之后不会出现的所有冒号字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29944577/

10-12 04:37
查看更多