正则表达式从比赛中删除整个短语

时间:2019-06-10 12:50:01

标签: regex

我正在尝试从正则表达式(PCRE)匹配项中删除整个词组

如果提供以下字符串

test:test2:test3:test4:test5:1.0.department
test:test2:test3:test4:test5:1.0.foo.0.bar
user.0.display
"test:test2:test3:test4:test5:1.0".division

我想编写将返回的正则表达式:

.department
.foo.0.bar
user.0.display
.division

现在,我认为这样做的一种好方法是匹配所有内容,然后删除test:test2:test3:test4:test5:1.0"test:test2:test3:test4:test5:1.0",但我为此很努力

我尝试了以下

\b(?!(test:test2:test3:test4:test5:1\.0)|("test:test2:test3:test4:test5:1\.0"))\b.*

但是这似乎只是从每个和多数民众赞成中删除了第一个测试。谁能帮我解决问题,或者提供更好的方法?

1 个答案:

答案 0 :(得分:1)

我建议搜索以下模式:

"?test:test2:test3:test4:test5:1\.0"?

并替换为空字符串。请参见regex demoregex graph

enter image description here

使用?(1或0次)量词使两端的引号成为可选。