2012-03-30 118 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 
} 
相关问题