Android Studio:正则表达式不工作
Android Studio: Regex not working
我将项目从 Eclipse 迁移到 Android Studio,一切正常。在这个项目中,我有一个正则表达式,它应该在我从 API.
获得的 json-object 中找到所有图像 urls
这是我的正则表达式:
Pattern pattern = Pattern.compile("https?:\/\/[^\"]*?\.(png|jpe?g|img)");
Matcher matcher = pattern.matcher(obj.toString());
while(matcher.find()) {
ImageBackgroundFetcher.getInstance(mActivity).addImageToLoadingQueue(matcher.group());
}
obj 是图像 urls 中的 JSONObject。看起来像下面这样,我想提取图像的 url (粗体标记部分)
{"image":"http:\/\/www.test.de\/media\/2015\/01\/16\/bildtitel.jpg"}
在我将项目从 Eclipse 迁移到 Android Studio 之后,这个 Regex 不再工作。 matcher.find()-方法没有 return 正确,Android Studio 在正则表达式部分的代码中给了我一个警告 "\\/\\/" 上面写着 "redundant character escape"
我已经用谷歌搜索但没有找到解决方案。任何解决问题的想法都会很棒,提前致谢 ;)
好的,我可以解决这个问题。正确的正则表达式是:
https?:\\/\\/[^\"]*?\.(png|jpe?g|img)
我一般用这个网站查:
使用模式:
(https?:\/\/.+(png|jpe?g|img))(?:")
并捕获它应该工作的第一组。
只需签入 java,转义 \ 和 / 与我链接的站点不同
使用你的表达式,模式:
https?:\/\/[^\"]*?\.(png|jpe?g|img)
应该也可以。最后一个字符串不应再次转义。还要检查原始 eclipse 项目中的字符串!
您可以使用 AS 函数来检查正则表达式。
按快捷键:Alt+Enter → 检查正则表达式
这与 Java 处理正则表达式的方式有关,它需要字符串文字。所以 \\ 对于单个 \
我将项目从 Eclipse 迁移到 Android Studio,一切正常。在这个项目中,我有一个正则表达式,它应该在我从 API.
获得的 json-object 中找到所有图像 urls这是我的正则表达式:
Pattern pattern = Pattern.compile("https?:\/\/[^\"]*?\.(png|jpe?g|img)");
Matcher matcher = pattern.matcher(obj.toString());
while(matcher.find()) {
ImageBackgroundFetcher.getInstance(mActivity).addImageToLoadingQueue(matcher.group());
}
obj 是图像 urls 中的 JSONObject。看起来像下面这样,我想提取图像的 url (粗体标记部分) {"image":"http:\/\/www.test.de\/media\/2015\/01\/16\/bildtitel.jpg"}
在我将项目从 Eclipse 迁移到 Android Studio 之后,这个 Regex 不再工作。 matcher.find()-方法没有 return 正确,Android Studio 在正则表达式部分的代码中给了我一个警告 "\\/\\/" 上面写着 "redundant character escape"
我已经用谷歌搜索但没有找到解决方案。任何解决问题的想法都会很棒,提前致谢 ;)
好的,我可以解决这个问题。正确的正则表达式是:
https?:\\/\\/[^\"]*?\.(png|jpe?g|img)
我一般用这个网站查:
使用模式:
(https?:\/\/.+(png|jpe?g|img))(?:")
并捕获它应该工作的第一组。 只需签入 java,转义 \ 和 / 与我链接的站点不同
使用你的表达式,模式:
https?:\/\/[^\"]*?\.(png|jpe?g|img)
应该也可以。最后一个字符串不应再次转义。还要检查原始 eclipse 项目中的字符串!
您可以使用 AS 函数来检查正则表达式。
按快捷键:Alt+Enter → 检查正则表达式
这与 Java 处理正则表达式的方式有关,它需要字符串文字。所以 \\ 对于单个 \