我构建正则表达式,匹配2个字母或2个字母后跟'/'和接下来的2个字母,例如:
rt bl/ws se gn/wd wk bl/rt
/^(((\s+)?[a-zA-Z]{2}(\/[a-zA-Z]{2})?)(\s+|$))+$/i
和工程没有问题.下一个问题,我有什么是匹配所有“字”不包含'/'字符.并替换所有匹配的重复值分隔的'/'.对于上述示例例外输出应该是:
rt/rt bl/ws se/se gn/wd wk/wk bl/rt
我试过一段时间但没有成功。你能帮我吗?
更新1:
我从匹配不包含“at”的单词的正则表达式开始
(\b((?!(at))\w)+\b)
我想用python替换匹配的元素,比如
re.sub(r'(\b((?!(at))\w)+\b)', r'\1/\1', text)
但首先要找到合适的元素
2条答案
按热度按时间xienkqul1#
如果你使用的是支持负向后查找的正则表达式,这个正则表达式应该会找到你想要替换的字符串:
(?<!\/)([A-Za-z]{2}(?!\/))
(?<!\/)
-确保匹配后面没有/
([A-Za-z]{2}
查找两个字母字符(?!\/))
确保没有尾随/
在Python中,你可以这样使用它:
输出:
Demo on rextester
在PHP中,你可以这样使用它:
输出:
Demo on 3v4l.org
gdrx4gfi2#