正则表达式如何提取html标签里面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式如何提取html标签里面的内容相关的知识,希望对你有一定的参考价值。

<p><strong><br>Rufus</strong><br>Dan, Jenny! Over here! </p>
<p><strong>Jenny</strong><br>Hey, dad! </p>
<p><strong>Rufus</strong><br>Hey, hey! You made it. Welcome back! How was your weekend? How was your mom? </p>
像这个里面的 rufus,jenny 。怎么提出来
高分求。急用

只提取rufus,jenny?不行吧。没有规律啊。是把所有的标签内内容提取了吧。

如果是提取标签内的话这么写:
        Pattern pattern = Pattern.compile(">([^<]+)<");
       
 Matcher macher = 
pattern.matcher("<p><strong><br>Rufus</strong><br>Dan,
 Jenny! Over here! 
</p><p><strong>Jenny</strong><br>Hey, dad!
 </p><p><strong>Rufus</strong><br>Hey, 
hey! You made it. Welcome back! How was your weekend? How was your mom? 
</p>");
        
        while (macher.find())
        
            System.out.println(macher.group(1));
        

打印结果:
Rufus
Dan, Jenny! Over here! 
Jenny
Hey, dad! 
Rufus
Hey, hey! You made it. Welcome back! How was your weekend? How was your mom?

麻烦采纳我的答案吧,(*^__^*) 嘻嘻……

参考技术A function getStr(id,str)
var p = document.getElementById(id);
var text = p.innerhtml;
return text.substring(text.indexOf(str),text.indexOf(str)+str.length); 

alert(getStr('p1','Rufus'))
//我给第一个p元素加了一个id,是p1,其他的三个也是这样提取出来的。换个id,换个字符就行了。这是不完整的提取字符的方法。如果想较为完整一些,可以在里面加一个判断语句,如果你所搜索的字符不存在,返回一个错误或者警告什么都可以。
//我没有使用正则,根本不需要正则就可以解决了。

参考技术B
你的标签貌似不太规则吧 <p><strong><br>Rufus</strong><br> 乱嵌呀 

 public void strong()
 
  int i = 0;
  final String regex = "<strong.*?/strong>";
  final Pattern pt = Pattern.compile(regex);
  final Matcher mt = pt.matcher(ContentArea);
  while (mt.find()) 
   System.out.println(mt.group());
   i++;

   // 获取标题
   final Matcher title = Pattern.compile(">.*?</strong>").matcher(mt.group());
   while (title.find()) 
    System.out.println("strong是:"
      + title.group().replaceAll(">|</strong>", ""));
  
   System.out.println();
  

  
  public static void main(String[] args)
 
  Urls myurl = new Urls("<body", "/body>");
  myurl.getStartUrl("...");//网址
  myurl.getUrlContent();
  myurl.getContentArea();
  myurl.strong();
 

参考技术C $str="<li><a href='xxx' target=\\"_blank\\">yyy</a><div class=\\"i1\\"></div><i>zzz</i></li><li><a href='xxx1' target=\\"_blank\\">yyy1</a><div class=\\"i1\\"></div><i>zzz1</i></li>";
$pattern='/<li><a[^>]+href=\\'([^\\']*)\\'[^>]*>([^<]*)<\\/a>.*<i>([^<]*)<\\/i><\\/li>/iUs';
preg_match_all($pattern, $str, $matches);
print_r($matches);

看下可以不,解析出来的数组应该知道怎么解吧!

参考技术D 思路:先解析html文件,可以用digester等第三方包。
想直接用正则表达式,不建议。
正则用的更多是校验格式,例如邮箱格式等。

java正则表达式替换html中除标签外的关键字内容

首先是从很长很长的字符串(其实就是一篇网页文章源代码),从里面 筛选出关键字keywords,然后根据关键字是否在html样式标签里面作为条件筛选出不合格的(也就是在html标签里面作为url或者样式的keywords不能替换,还要保持原貌),然后用"<a href=\""+cau.getUrl()+"\" class=\"ebkw\" title=\""+cau.getKeywords()+"\">"+cau.getKeywords()+"</a>")字符串把关键字keywords代替了
List addUrlContentList = new ArrayList(); CmsAddUrlcontent urlContent = new CmsAddUrlcontent(); CmsAddUrlcontent urlContent1 = new CmsAddUrlcontent(); urlContent.setKeywords("B2C"); urlContent1.setKeywords("C2C"); urlContent.setUrl("http://www.ebrun.com/b2c/"); urlContent1.setUrl("www.ebrun.com/c2c"); addUrlContentList.add(urlContent); addUrlContentList.add(urlContent1); s=addUrl(addUrlContentList, s); System.out.println(s); return strContent;

参考技术A \b在线问答平台,解答问题社区,解答问题平台\b(?=[^<>]*<)
把上面在线问答平台,解答问题社区,解答问题平台替换成你的关键字,注意把也替换掉,我是为了让你看明白换哪才加的。
然后你找到匹配上面的正则的地方后替换成你想替换的字符串就好了,全部替换记得用全局修饰符

以上是关于正则表达式如何提取html标签里面的内容的主要内容,如果未能解决你的问题,请参考以下文章

求一条c# 正则表达式,来获取HTML标签的内容

用于提取 HTML 正文内容的正则表达式

js使用正则表达式将字符串里面的img标签src的值提取出来

正则表达式如何匹配提取括号中的内容

HTML中如何利用正则表达式去除tr td标签

php 正则表达式 匹配网站内容