Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 最后一次出现:和.tst之间的文本的正则表达式_Regex_Between_Last Occurrence - Fatal编程技术网

Regex 最后一次出现:和.tst之间的文本的正则表达式

Regex 最后一次出现:和.tst之间的文本的正则表达式,regex,between,last-occurrence,Regex,Between,Last Occurrence,作为一个例子,我有一个字符串是Banjo.ald:Mandolin.ald:guitart.tst,我试图找到将返回字符串吉他的正则表达式。在上面的示例中,我感兴趣的文本前面有两个组(即班卓.ald:Mandolin.ald:),但实际上,在这些组中,有1到N个组被定义为班卓.ald: 如果您需要更清楚地了解我在寻找什么,请告诉我。您可以使用贪婪的正则表达式,它将消耗所有内容,直到最后一个冒号。然后捕捉接下来的单词,直到.tst: ^.*:(.*).tst$ 我需要更清楚地说明你在寻找什么。@

作为一个例子,我有一个字符串是Banjo.ald:Mandolin.ald:guitart.tst,我试图找到将返回字符串吉他的正则表达式。在上面的示例中,我感兴趣的文本前面有两个组(即班卓.ald:Mandolin.ald:),但实际上,在这些组中,有1到N个组被定义为班卓.ald:


如果您需要更清楚地了解我在寻找什么,请告诉我。

您可以使用贪婪的正则表达式,它将消耗所有内容,直到最后一个冒号。然后捕捉接下来的单词,直到
.tst

^.*:(.*).tst$

我需要更清楚地说明你在寻找什么。@Casimirithippolyte我想如果我读对了,他只是想要
吉他
.tst。在上面的例子中,我希望返回吉他,所以我想把所有内容放在最后一个冒号之前(包括最后一个冒号本身),我想把所有其他内容放在.tst之前(不包括.tst)。字符串将始终以:guist.tst结尾,但我不知道还有多少其他内容。ald:部分将在前面。如果您需要更多说明,请告诉我。我尝试在regexr中使用此作为测试,但它返回整个字符串,可能是我做错了什么,因为我对regexrIn不太熟悉。我在上面给出的演示中,它起了作用,并且我也相信这在Java和大多数语言中都适用。如果你能给我一个到你的演示的链接,也许我可以看一看。感谢你提供到Regex101的链接,这非常有帮助。我意识到我得到不同回复的原因是我的示例有缺陷。我的字符串中有空格:Ban jo.ald:Man dolin.ald:Gui tar.t,空格应该无关紧要,但在本例中,您最终将捕获
Gui tar
而不是
guit
。我的观点是,我在应用程序中使用的regex引擎与您链接的regex101站点的运行方式不同。我的怀疑是,regex101站点显示完全匹配以及第一组,即我的正则表达式引擎只返回完全匹配。