Will this Java regex return a single result or multiple
If my HTML is:
<tr><td>....</td><hr></tr>
<tr><td>....</td><hr></tr>
<tr><td>....</td><hr></tr>
<tr><td>....</td><hr></tr>
<tr><td>....</td><hr></tr>
<tr><td>....</td><hr></tr>
If my regex is:
Patterp p = Pattern.compile("<tr>(.*)<hr><开发者_如何学编程;/tr>");
Should this get 1 result or all the individual rows?
Is there a way to force it to get all the rows and not just the entire html from the top <tr>
to the last instance of <hr></tr>
?
Your regex is using .*
which is greedy. Try using .*?
instead. A greedy match will grab as much as it can before matching following tokens, so it will go find the last <hr>
in your source text. A non-greedy match will grab as little as it can before matching the next token(s).
Then, see this answer for more information about parsing HTML with regular expressions.
精彩评论