![](/img/trans.png)
[英]how do I remove everything except an element from an array of strings from a string in java?
[英]How to remove everything from HTML except special tag in java?
我想通過僅提取<form> ... </form>
來解析HTML字符串。 不需要其他所有東西,我可以將其刪除。
今天,我有一些助手可以通過replaceAll
特殊標記內容刪除,例如:
/** remove form */
String newString = string.replaceAll("(?s)<form.*?</form>", "");
(?s)<form.*?</form>
刪除form
標簽。 但是反之亦然,刪除除form
以外的所有內容。
我該如何解決?
看看我的Gskinner示例
嘗試下面的代碼。
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
以下代碼將為您提供所需的指導:
String str = "<html><form>test form</form></html>";
String newString = str.replaceAll("[^<form</form>]+|((?s)<form.*?</form>)", "$1");
System.out.println(newString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.