对于给定的文本
包装:我的五打盒装:酒:罐子:::
我想用只出现在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/