2017-03-03 51 views
1

作爲一個例子,我有Banjo.ald:Mandolin.ald:Guitar.tst字符串,我試圖找到返回字符串吉他的正則表達式。在上面的示例中,我有兩個組在我感興趣的文本之前(即Banjo.ald:Mandolin.ald :),但實際上會有1到N個組,其中一組定義爲Banjo.ald:正則表達式的最後一次出現:和.tst

如果您需要更多清晰的信息,請告訴我。

+0

我需要你在找什麼更清晰。 –

+0

@CasimiretHippolyte我認爲他只是想要'吉他'.tst,如果我正確讀。 –

+0

在上面的例子中,我正在尋找返回吉他,所以我想放棄最後一個冒號(包括最後一個冒號本身)之前的所有內容,並且希望在.tst(不包括.tst)之前保留所有其他內容。該字符串將始終以:Guitar.tst結尾,但我不知道還有多少個其他的something.ald:部分將在它之前。讓我知道你是否需要更多的澄清。 – Janus

回答

1

你可以使用一個貪婪的正則表達式,它會消耗一切,直到最後一個冒號。然後捕獲下面的字,一切直到.tst

^.*:(.*).tst$ 

Regex101

+0

我試圖在regexr中使用這個作爲測試,但它返回整個字符串,可能我做錯了什麼,因爲我不是很熟悉正則表達式 – Janus

+0

在上面給出的演示中,它工作,我也相信這可以在Java和大多數語言。如果你能給我一個鏈接到你的演示,也許我可以看看。 –

+0

謝謝你的鏈接到Regex101,這是非常有用的。我意識到我得到不同迴應的原因是我的例子有缺陷。我的字符串中有空格:Ban jo.ald:Man dolin.ald:Gui tar.tst – Janus

相關問題