java 正则 去除htm 除 img p iframe video audio 标签以外其他标签
时间: 2023-10-12 21:20:19 浏览: 301
可以使用以下正则表达式来去除除 img、p、iframe、video、audio 标签以外的所有 HTML 标签:
```
String htmlContent = "<html><body><p>Hello World!</p><div><img src='image.jpg'></div><a href='#'>Link</a><script>alert('Hello');</script></body></html>";
String cleanedHtmlContent = htmlContent.replaceAll("(?i)<(?!img|p|iframe|video|audio)[^>]*>", "");
System.out.println(cleanedHtmlContent);
```
解释一下上面的正则表达式:
- `(?i)` 表示忽略大小写。
- `<` 表示匹配左括号。
- `(?!img|p|iframe|video|audio)` 表示后面不是 `img`、`p`、`iframe`、`video`、`audio` 标签。
- `[^>]*` 表示匹配不是右括号的任意字符。
- `>` 表示匹配右括号。
上面的代码会输出以下内容:
```
<p>Hello World!</p><div><img src='image.jpg'></div>
```
相关问题
java 正则匹配 去除p标签中所有属性
可以使用正则表达式和Java中的replaceAll()方法将p标签中的属性去除。以下是示例代码:
```java
String input = "<p class=\"test\" style=\"color:red;\">This is a paragraph.</p>";
String output = input.replaceAll("<p\\s+[^>]*>", "<p>"); // 匹配<p>标签中的所有属性并替换为空
System.out.println(output);
```
输出结果为:
```html
<p>This is a paragraph.</p>
```
解释一下正则表达式:`<p\\s+[^>]*>`匹配以`<p`开头,后面跟着一个或多个空白字符(包括空格、制表符、换行符等),然后跟着任意数量的非`>`字符(即p标签中的属性),最后以`>`结尾的字符串。`[^>]*`表示非`>`字符的任意数量。然后使用空字符串替换匹配到的字符串,即删除p标签中的所有属性。
java 正则去除所有的html标签
您可以使用Java中的正则表达式来去除HTML标签。以下是一个示例代码,可以帮助您实现这个功能:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlTagRemover {
private static final String HTML_TAG_PATTERN = "<[^>]+>";
public static String removeHtmlTags(String input) {
if (input == null) {
return null;
}
Pattern pattern = Pattern.compile(HTML_TAG_PATTERN);
Matcher matcher = pattern.matcher(input);
return matcher.replaceAll("");
}
}
```
以上代码中,我们定义了一个正则表达式 `"<[^>]+>"` 用来匹配所有的HTML标签。然后我们使用 `Pattern` 和 `Matcher` 类来查找和替换这些标签。最后返回没有HTML标签的字符串。
阅读全文