我在下面的字符串中使用正则表达式。
但总是将匹配结果视为错误。
有什么建议吗?
我想在<tr> and </tr>.
Pattern myPattern = Pattern.compile('\\<tr>(.*?)\\</tr>');
Matcher m = myPattern.matcher(temp);
while(m.find())
{
.. do things
}
<tr><td>111</td><td>111@test.com</td></tr><tr><td>222</td><td>222@test.com</td></tr></table>
即使我改为Pattern myPattern = Pattern.compile('<tr>(\\w+)</tr>');
,也无法获得真实的结果。
而且这个还没有工作<tr>(.*?)</tr>
。我查看http://regexr.com/,但似乎没问题。但是,当我运行代码时,无法正常工作。
答案 0 :(得分:1)
我没有使用您正在测试的环境,但由于您必须使用正则表达式,我看到一个可能的问题:.
可以匹配除行分隔符之外的任何字符,因此它不匹配
<tr>
<td>..</td>
</tr>
要使其正常工作,您可以使用DOTALL
标志,请尝试
Pattern myPattern = Pattern.compile("<tr>(.*?)</tr>",Pattern.DOTALL);
答案 1 :(得分:0)
尝试Pattern myPattern = Pattern.compile("<tr>(.*?)</tr>");