2012-03-30 322 views
8

我需要知道是否檢查一個字符串是否以.xyz結尾加上任何後面的字符。檢查字符串是否以Java結尾(正則表達式)

像這樣:

myString.endsWidth(".css*") 

然而,這並不通過我的if語句。一個具體的例子是這種字符串:style.css?v=a1b23

任何想法?

完整示例字符串:

http://xyz.com//static/css/style.css?v=e9b34 
+2

的endsWith不使用正則表達式。 – claesv 2012-03-30 13:12:10

回答

12

哼哼,我猜是這樣的,甚至更好:

return myString.indexOf(".css")>-1; 

如果你真的想要去與正則表達式,你可以使用這個

return myString.matches(".*?\\.css.*"); 
+0

我試過「。*?\\。css。*」,但仍然不會「工作...... – xybrek 2012-03-30 13:17:36

+1

剛剛嘗試過:」style.css?v = a1b23「.matches(」。*?\\。css。*「)並返回'真',所以你必須有其他問題 – 2012-03-30 13:20:42

2

使用".*\.css.+"作爲您的常規e的表達。

+0

我不知道這不工作呢?完整的字符串應該是這樣的:http://xyz.com//static/css/style.css?v=e9b34 – xybrek 2012-03-30 13:19:39

+0

你認爲埃裏克的答案?你需要使用'match(String)',而不是'endsWith(String)'。順便更新了表達式。 – 2012-03-30 13:25:22

3

endsWith採用字符串作爲參數

matches接受一個正則表達式

0

使用\.(.{3})(.*)則第一組($ 1)包含三個字符.之後並且在第二組$ 2包含的字符串之後的其餘部分那三個角色。在表達式的末尾添加$符號,使其僅查找與該組合

0

嘗試一些正則表達式結尾的字符串:

Pattern p = Pattern.compile(".*\.css.*"); 
Matcher m = p.matcher("mystring"); 
if (m.matches()) { 
    // do your stuff 
} 
相關問題