有字符串strng = "<title>text1</title><title>text2</title>";
如何获取像这样的数组
arr[0] = "text1";
arr[1] = "text2";
我尝试使用它,但结果有,而不是数组 text1</title><title>text2
Pattern pattern = Pattern.compile("<title>(.*)</title>");
Matcher matcher = pattern.matcher(strng);
matcher.matches();
最佳答案
虽然我同意使用 XML/HTML 解析器 is a better alternative in general ,您的场景很容易用正则表达式解决:
List<String> titles = new ArrayList<String>();
Matcher matcher = Pattern.compile("<title>(.*?)</title>").matcher(strng);
while(matcher.find()){
titles.add(matcher.group(1));
}
注意非贪婪运算符 .*?
并使用 matcher.find()
而不是 matcher.matches()
。
引用:
关于Java preg_match 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084419/