我想使用Patterns.WEB_URL.matcher(qrText);
我想做什么:
我正在扫描QR码
我尝试过的事情:
private void initialize() {
if (getIntent().getStringExtra(Constants.KEY_LINK) != null) {
qrText = getIntent().getStringExtra(Constants.KEY_LINK);
webMatcher = Patterns.WEB_URL.matcher(qrText);
}
if (qrText.contains("veridoc") && webMatcher.matches()) {
//if qr text is veridoc link
Log.e("veridoc link", qrText);
setupWebView(qrText, false);
} else if (webMatcher.matches()) {
//if qr text is link other than veridoc
Log.e("link", qrText);
openInBrowser(qrText);
finish();
} else if (qrText.contains("veridoc") && webMatcher.find()) {
//if qrText contains veridoc link + other text.
String url = webMatcher.group();
if (url.contains("veridoc")) {
Log.e("veridoc link found", url);
setupWebView(url, true);
} else
showQRText(qrText);
} else {
//the qrText neither is a link nor contains any link that contains word veridoc
showQRText(qrText);
}
}
}
在上面的代码中,
setupWebView(String strUrl, boolean isTextAndUrlBoth)
设置网络视图并加载网址等。
openInBrowser(String url)
在浏览器中打开提供的URL。
showQRText(String text)
在textView中以格式显示提供的文本。
问题
当文本包含一些文本并且具有多个链接时,String url = webMatcher.group();
总是获取文本中的第一个链接。
我想要的
我想要文本中的所有链接,并找出哪些链接包含单词“ veridoc”。之后,我想调用方法setupWebView(url, true);
。
我正在使用以下链接和示例文字
名称:东西 职业:某事 链接1:https://medium.com/@rkdaftary/understanding-git-for-beginners-20d4b55cc72c 链接2:https://my.veridocglobal.com/login 谁能帮助我找到文本中显示的所有链接?
答案 0 :(得分:1)
您可以循环查找,以找到其他网站并设置阵列列表
Matcher webMatcher = Patterns.WEB_URL.matcher(input);
ArrayList<String> veridocLinks = new arrayList<>();
ArrayList<String> otherLinks = new arrayList<>();
while (webMatcher.find()){
String res = webMatcher.group();
if(res!= null) {
if(res.contains("veridoc")) veridocLinks.add(res);
else otherLinks.add(res);
}
}
给出如下示例输入:
String input = "http://www.veridoc.com/1 some text http://www.veridoc.com/2 some other text http://www.othersite.com/3";
您的ArrayList将包含:
veridocLinks : "http://www.veridoc.com/1", "http://www.veridoc.com/2"
otherLinks : "http://www.othersite.com/3"