假设字符串是 <title>xyz</title>
我想提取 xyz
从字符串中出来。
我用过:
Pattern titlePattern = Pattern.compile("<title>\\s*(.+?)\\s*</title>");
Matcher titleMatcher = titlePattern.matcher(line);
String title=titleMatcher.group(1));
但我收到 titlePattern.matcher(line); 的错误
最佳答案
你说你的错误发生得更早(实际的错误是什么,对我来说运行没有错误),但是在解决之后,你将需要在匹配器上调用 find()
一次才能实际搜索对于模式:
if(titleMatcher.find()){
String title = titleMatcher.group(1);
}
如果您确实与具有非转义 HTML 实体(如
)的字符串进行匹配,则情况并非如此<title>xyz</title>
那么你的正则表达式将必须使用这些,而不是转义实体:
"<title>\\s*(.+?)\\s*</title>"
另外,你应该小心你尝试做到什么程度,就像你 can't really parse HTML or XML with regular expressions 一样。 。如果您正在使用 XML,那么使用 XML 解析器会更容易,例如JDOM .
关于java - 如何在java中使用模式匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986031/