試試下面的代碼。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Client {
private static final String PATTERN = "<form>(.+?)</form>";
private static final Pattern REGEX = Pattern.compile(PATTERN);
private static final boolean ONLY_TAG = true;
public static void main(String[] args) {
String text = "Hello <form><span><table>Hello Rais</table></span></form> end";
System.out.println(getValues(text, ONLY_TAG));
System.out.println(getValues(text, !ONLY_TAG));
}
private static String getValues(final String text, boolean flag) {
final Matcher matcher = REGEX.matcher(text);
String tagValues = null;
if (flag) {
if (matcher.find()) {
tagValues = "<form>" + matcher.group(1) + "</form>";
}
} else {
tagValues = text.replaceAll(PATTERN, "");
}
return tagValues;
}
}
您將獲得以下輸出
<form><span><table>Hello Rais</table></span></form>
Hello end
一般情況下,它的解析與HTML DOM解析器是個好主意。 – Leri
是的,但有時網頁上有錯誤,如沒有結束標記,在這種情況下,這種做法是不好的主意 –
在這種情況下可以嘗試:'字符串newString = string.replaceAll(「*(<形式*)。?。?」 「$ 1」);' – Leri