Java preg_match 数组

标签 java html regex

有字符串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/

相关文章:

Javascript 替换不起作用?

java - 在java正则表达式中验证价格

java - 使用 FileInputStream 读取一个文件并使用 FileOutputStream 写入另一个文件

java - 在 M1 Apple Silicon 上运行时禁用 junit5 测试

javascript - 显示模态时隐藏切换导航

html - 仅在悬停时突出显示节拍器图标

javascript - 正则表达式捕获引号后跟非标点字符

java - myBatis中与JAVA对象映射时如何将integer[]直接转换为List<Integer>

java - MongoDB 是关系 db + lucene 的有效替代品吗?

javascript - 使用ajax提交表单