以下是我正在使用的示例字符串:
http://www.asfradio.com/device.asp?u=username&p=password&s=east
我在代码中使用的当前检查:
if (data.endsWith(".asf") || (0 < data.indexOf(".asf")))
所以在这种情况下我的检查失败了,因为是的,有一个.asf字符串,但是后面跟着收音机,这使我的逻辑不好,因为此链接不是asf类型...
我想要的是一个正则表达式,如果找到“ .asf”并且“ f”之后的下一个字符不是字母,则返回true。
希望它能引起人们的注意...
最佳答案
在Java的正则表达式引擎中,您有word boundary anchor \b
搜索\\.asf\\b
。为了与String.matches()一起使用,您必须使用.*
将其包装起来:
boolean found = inStr.matches(".*\\.asf\\b.*");
更好的是,将编译后的模式存储在一个常量中:
private static final Pattern PATTERN = Pattern.compile("\\.asf\\b");
并像这样使用它:
boolean found = PATTERN.matcher(inStr).find(); // not .matches()
关于java - 如何创建reg表达式来找到URL文件扩展名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6019908/