帮忙写个正则表达式

amadis00 2017-11-22 11:25:10
请高手帮忙写个正则表达式,实现:
在<img> 控件中的 src属性包含 show 四个字符,

网上看到有个这样写的,不知道怎么改,Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);

感觉正则表达式很难掌握啊。

谢谢
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickylin86 2017-11-22
  • 打赏
  • 举报
回复
上面的代码可以针对多属性以及类似<tag attr="aa">content</tag>类似这样的全表达
rickylin86 2017-11-22
  • 打赏
  • 举报
回复
下面有测试代码.你可以试下.

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

public class Test{
	public static void main(String[] args){
		String content = "<img src=\"invalid\" attr1=\"value1\"/>this is the img tag <img src=\"33show11\" attr1=\"value1\"/> test content <img attr2=\"value2\" src=\"fdshowa\" attr3=\"value3\">not content</img>";
		String regex = "<img(\\s+(?!src=)\\w+\\s*=\"[^\"]+\")*(\\s+src\\s*=\"[^\"]*show[^\"]*\")(\\s+(?!src=)\\w+\\s*=\"[^\"]+\")*\\s*(/>|>.*</img>)";
		Matcher matcher = Pattern.compile(regex).matcher(content);
		while(matcher.find()){
			System.out.println(matcher.group(0));
		}
	}
}
子规入梧桐 2017-11-22
  • 打赏
  • 举报
回复
看这个吧,应该很容易看懂,另外推荐regexbuddy工具
  • 打赏
  • 举报
回复
".*\\s*<img\\s*src\\s*=\\s*.*show.*\\s*>\\s*.*"这个适用的范围更广一点
  • 打赏
  • 举报
回复
".*\\s*<img\\ssrc\\s*=\\s*.*show.*\\s*>\\s*.*" 这个就可以匹配的
  • 打赏
  • 举报
回复
<img.*src=.*show.*> 匹配<img src="xxxshowxxx.xxx">
  • 打赏
  • 举报
回复
你的目的是干什么呢?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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