正则表达式匹配子字符串中的最后一个匹配项

时间:2016-12-20 02:01:58

标签: regex matlab

我有这样的文字

words words words tag a words words tag a words tag b words time words words tag c words time

我不知道a,b和c是什么。我想要捕获的是" tag b words time",tag c words time"和任何其他喜欢它。所以我尝试的regexp是tag[\w ]+?time。但那匹配

tag a words words tag a words tag b words time

如何捕获最后一次出现的标记?我正在使用matlab,所以如果有一个非正则表达式的解决方案,那也很好。

2 个答案:

答案 0 :(得分:1)

这应该做:

tag\s*[\w]\s*[\w]+\s*time

答案 1 :(得分:0)

您可以使用此正则表达式:

/tag [a-z]{4} [\w]+ time$/

这是一个工作示例(在javascript中,但是如果你使用PCRE它应该在matlab中工作)。

s1 = "words words words tag a words words tag a words tag b words time words words tag cccc words time"
re = /tag [a-z]{4} [\w]+ time$/
console.log(s1.match(re))