正则表达式替换最短匹配

时间:2012-02-07 10:06:52

标签: regex regular-language

我的字符串是这样的 sfdfdsfdsf的 start112matlab2336end gfdgdfgkknfkg的 start558899end dfdsfd

我们如何以结果将

的方式替换字符串的一部分

sfdfdsfdsfgfdgdfgkknfkgdfdsfd

,但需要删除粗体内容。

3 个答案:

答案 0 :(得分:19)

您需要使用non-greedy匹配:

start.*?end

答案 1 :(得分:5)

使用此正则表达式/start.+?end/g的替换函数,它将匹配字符串的粗体部分。正则表达式的g部分表示全局,可能需要根据您使用的语言以不同方式实现。

这里的关键是使用?打开非贪婪的匹配。这意味着匹配消耗的字符数量最少,而不是最大值,因此匹配从start到下一个而不是最后一个end

答案 2 :(得分:0)

start[1-9]+end

如果你需要在单词之间加上数字