java正则表达式去除img标签里的style属性包括style属性中的内容,或者有别的解决方法也行

qq_21151683 2016-01-21 01:17:19
<img alt="" style="xxxx"/> 就是将style="xxxx"去掉。 别的标签中的style不能去掉
...全文
844 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21151683 2016-01-21
  • 打赏
  • 举报
回复
引用 3 楼 rickylin86 的回复:
这个就可以解决. 还有再提出问题之前最好把你的需求表达清楚. 因为本身正则就需要在特定的情况下做匹配的.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Test{
	public static void main(String[] args){
		String content = "<Img src='aa.jpg' bb  =\"dd\" style='xxxdfdf' cc=  dafa />";
		String attrRegex = "(\\s+(?!style\\s*=)\\w+\\s*=\\s*('[^']+'|\"([^\"]|\\\\\")+\"|\\w+)(?=/>|\\s))";
		String styleRegex = "\\s+style\\s*=\\s*(\"([^\"]|\\\\\")+\"|'[^']+')(?=\\s|/>)";
		String regex = "^(?i)(?<head><img" + attrRegex + "*)" + styleRegex + "(?<tail>" + attrRegex + "*\\s*/>)$";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(content);
		if(matcher.matches()){
			content = matcher.group("head") + matcher.group("tail");
		}

		System.out.println(content);
	}
}
好的 知道了 谢谢你..
rickylin86 2016-01-21
  • 打赏
  • 举报
回复
这个就可以解决. 还有再提出问题之前最好把你的需求表达清楚. 因为本身正则就需要在特定的情况下做匹配的.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Test{
	public static void main(String[] args){
		String content = "<Img src='aa.jpg' bb  =\"dd\" style='xxxdfdf' cc=  dafa />";
		String attrRegex = "(\\s+(?!style\\s*=)\\w+\\s*=\\s*('[^']+'|\"([^\"]|\\\\\")+\"|\\w+)(?=/>|\\s))";
		String styleRegex = "\\s+style\\s*=\\s*(\"([^\"]|\\\\\")+\"|'[^']+')(?=\\s|/>)";
		String regex = "^(?i)(?<head><img" + attrRegex + "*)" + styleRegex + "(?<tail>" + attrRegex + "*\\s*/>)$";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(content);
		if(matcher.matches()){
			content = matcher.group("head") + matcher.group("tail");
		}

		System.out.println(content);
	}
}
qq_21151683 2016-01-21
  • 打赏
  • 举报
回复
引用 1 楼 rickylin86 的回复:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{
	public static void main(String[] args){
		String content = "<img alt=\"\" style=\"xxxx\"/>";
		String regex = "(?<head><img\\s+alt\\s*=\\s*\"\"\\s+)style\\s*=\\s*\"([^\"]|\\\\\")+\"\\s*(?<tail>/>)";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(content);
		if(matcher.matches()){
			System.out.println("get here");
			content = matcher.group("head") + matcher.group("tail");
		}

		System.out.println(content);
	}
}
我只是举个例子.. 里面还有src属性呢.. 并且这样写会不会写的太死了
rickylin86 2016-01-21
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{
	public static void main(String[] args){
		String content = "<img alt=\"\" style=\"xxxx\"/>";
		String regex = "(?<head><img\\s+alt\\s*=\\s*\"\"\\s+)style\\s*=\\s*\"([^\"]|\\\\\")+\"\\s*(?<tail>/>)";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(content);
		if(matcher.matches()){
			System.out.println("get here");
			content = matcher.group("head") + matcher.group("tail");
		}

		System.out.println(content);
	}
}

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧