正则表达式替换最短匹配

3

我的字符串如下:

sfdfdsfdsfstart112matlab2336endgfdgdfgkknfkgstart558899enddfdsfd

我们如何替换字符串的一部分,使得结果如下:

sfdfdsfdsfgfdgdfgkknfkgdfdsfd

即需要删除加粗的内容。


我尝试了“start.*end”,但它匹配的是第一个start和最后一个end。 - Sai Mukesh
3个回答

20
你需要使用非贪婪匹配:非贪婪
start.*?end

5
使用替换函数与此正则表达式/start.+?end/g,它将匹配您字符串的粗体部分。正则表达式中的g部分表示全局匹配,根据您使用的语言可能需要以不同方式实现。
关键在于使用?,它开启了非贪婪匹配。这意味着匹配消耗的字符数是最小的而不是最大的,因此将从start匹配到下一个而不是最后一个end

0
start[1-9]+end

如果你需要在单词之间插入数字


似乎不是这样。 - toniedzwiedz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接