![](/img/trans.png)
[英]How can I match everything that is after the last occurrence of some char in a perl regular expression?
[英]regular expression to match everything until the last occurrence of /
使用正則表達式(Ant 中的replaceregexp)如何匹配(然后替換)從一行的開頭到最后一次出現的斜杠的所有內容?
我需要從以下任何一個開始:
../../replace_this/keep_this
../replace_this/replace_this/Keep_this
/../../replace_this/replace_this/Keep_this
並將它們變成這樣:
what_I_ addedKeep_this
看起來它應該很簡單,但我不明白。 我已經制作了正則表達式,可以識別最后一個斜杠並從那里匹配到行尾,但我需要的是一個匹配從一行開始到最后一個斜杠的所有內容的正則表達式,因此我可以將其全部替換.
這是用於讀取一堆 .txt 文件並轉換它在其中找到的任何鏈接的 Ant 構建文件。 我只想使用replaceregexp,而不是變量或屬性。 如果可能的話。
你想要做的是貪婪地匹配,模式的最長可能匹配,通常是默認的,但匹配到'/'的最后一個實例。
那將是這樣的:
.*\/
解釋:
. any character
* any and all characters after that (greedy)
\/ the slash escaped, this will stop at the **last** instance of '/'
你可以在這里看到它的實際效果: http : //regex101.com/r/pI4lR5
選項1
^.*/
Empty string
*
量詞是貪婪的,所以^.*/
將匹配從行首到最后一個斜杠。 所以你可以直接用一個空字符串替換它,你就會得到你想要的文本。選項 2
^.*/(.*)
$1
或\\1
,不確定 Ant)^.*/
匹配最后一個斜杠。 然后使用(.*)
將行的末尾捕獲到 Group 1,並將整個匹配替換為 Group 1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.