2012-06-08 75 views
-1

下面是我的正則表達式: -搜索和替換「/」的URL在Java中使用正則表達式的結束

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b 

時請求的URL是http://www.example.com/類型的,最後一個字符是不是在我shortner取代結尾處附加url和/

的正則表達式是無法找到的最後一個/

請幫忙。

+4

爲什麼不簡單使用''if(myString.endsWith(「/」))''? –

+6

@vakimshaar,但我想註冊前,他們增加複雜性,使我便祕。 –

+2

@Vakimshaar - 他們增加了工作安全。讓代碼如此複雜,只有你明白它的工作原理! –

回答

1

我認爲,/是一個單詞邊界,所以也許它工作得更好,如果你添加一個?在和,所以它讀取:

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b? 
+0

這是行得通的。它取代了/最後。謝謝Edvin。 +1給你的答案。 – Sanket

0

如果你想要的是更換後/(這是你的問題直接問),你可以簡單地做:

url = url.substring(0, url.lastIndexOf('/')); 

記得KISS頻繁。

+0

這將消除以前/如果還沒有完成/ – magodiez

+0

是OP的火箭科學添加一個'if'條件在這個陳述之前? – adarshr

1

怎麼樣:

if(url.endsWith("/")) 
    url = url.substring(0,url.length()-1); 

,或者如果你需要使用正則表達式,你可以做這樣的事情:

url = url.replaceAll("(\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*)/(\\b?)","$1$2"); 
0

你可以簡單地使用:

url = url.replaceAll("\/+$",""); 
相關問題