最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java正則匹配HTML中a標(biāo)簽里的中文字符示例

 更新時(shí)間:2017年01月09日 08:50:09   作者:MikanMu  
這篇文章主要介紹了java正則匹配HTML中a標(biāo)簽里的中文字符,涉及java中文正則及HTML元素操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了java正則匹配HTML中a標(biāo)簽里的中文字符。分享給大家供大家參考,具體如下:

今天群里一位朋友問(wèn)到了一個(gè)正則表達(dá)式的問(wèn)題,有如下內(nèi)容:

<a href='www.baidu.comds=id32434#comment'rewr>特432</a>
453543
<a guhll,,l>a1特123你好123嗎?</a>
<a href=id=32434#comment'ewrer>特2</a>
<a>標(biāo)簽中的文字</a>

現(xiàn)在要匹配出內(nèi)容包含中文但標(biāo)簽的屬性中不包含comment的<a>標(biāo)簽中的漢字。

解決思路如下:

1、首先匹配出不包括comment的<a>標(biāo)簽;

2、在匹配結(jié)果中進(jìn)行二次匹配出中文;

代碼如下:

package com.mmq.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @use 匹配HTML的<a>標(biāo)簽中的中文字符
 * @ProjectName stuff
 * @Author mumaoqiang
 * @FullName com.mmq.regex.MatchChineseCharacters.java
 * @JDK 1.6.0
 * @Version 1.0
 */
public class MatchChineseCharacters {
  /**
   * 根據(jù)輸入的內(nèi)容,匹配出包含中文但不包含comment的<a>標(biāo)簽中的中文字符
   * @param source 要匹配的內(nèi)容
   * @return <a>標(biāo)簽中的中文字符
   */
  public static String matchChineseCharacters(String source) {
    //匹配出包含中文但不包含comment的<a>標(biāo)簽
    String reg = "<a((?!comment).)*?>([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=</a>)";
    Pattern pattern = Pattern.compile(reg);
    Matcher matcher = pattern.matcher(source);
    StringBuilder character = new StringBuilder();
    while(matcher.find()){
      String result = matcher.group();
      System.out.println(result);
      //對(duì)結(jié)果進(jìn)行二次正則,匹配出中文字符
      String reg1 = "[\\u4e00-\\u9fa5]+";
      Pattern p1 = Pattern.compile(reg1);
      Matcher m1 = p1.matcher(result);
      while(m1.find()){
        character.append(m1.group());
      }
      //System.out.println(character.toString());
    }
    return character.toString();
  }
  public static void main(String[] args) {
    String result = matchChineseCharacters("<a href='www.baidu.comds=id32434#comment'rewr>特432</a>453543<a guhll,,l>a1特123你好123嗎?</a><a href=id=32434#comment'ewrer>特2</a><a>標(biāo)簽中的文字</a>");
    System.out.println(result);
  }
}

輸出結(jié)果如下:

<a guhll,,l>a1特123你好123嗎?
<a>標(biāo)簽中的文字
特你好嗎標(biāo)簽中的文字

這里做一下解釋:

String reg = "<a((?!comment).)*?>([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=</a>)";

這個(gè)匹配內(nèi)容包含中文但標(biāo)簽的屬性中不包含comment的<a>標(biāo)簽的正則中,不能使用向后查找?<=,因?yàn)橄蚝蟛檎抑荒苁枪潭ㄩL(zhǎng)度的內(nèi)容,這里<a>標(biāo)簽中屬性不確定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=</a>)使用向前查找?=,在結(jié)果中不會(huì)包含結(jié)束標(biāo)簽</a>。

這個(gè)問(wèn)題就這樣得到解決了。如果說(shuō)要匹配指定標(biāo)簽中的指定內(nèi)容,那么也是很容易改進(jìn)的了。若有更好的正則,還請(qǐng)留言相互學(xué)習(xí)。

PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • mac下idea啟動(dòng)web項(xiàng)目報(bào)錯(cuò)java.net.SocketException:socket closed問(wèn)題

    mac下idea啟動(dòng)web項(xiàng)目報(bào)錯(cuò)java.net.SocketException:socket closed

    本文主要介紹了作者在項(xiàng)目啟動(dòng)時(shí)遇到的一個(gè)問(wèn)題——無(wú)法打開(kāi)調(diào)試端口,經(jīng)過(guò)一系列排查和嘗試,最終發(fā)現(xiàn)是由于權(quán)限問(wèn)題導(dǎo)致的,作者還分享了如何修改文件權(quán)限的方法,并提醒大家不要隨意kill掉占用端口的進(jìn)程
    2024-12-12
  • springmvc限流攔截器的示例代碼

    springmvc限流攔截器的示例代碼

    本篇文章主要介紹了springmvc限流攔截器的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • SpringCloud微服務(wù)熔斷器Hystrix使用詳解

    SpringCloud微服務(wù)熔斷器Hystrix使用詳解

    這篇文章主要介紹了Spring Cloud Hyxtrix的基本使用,它是Spring Cloud中集成的一個(gè)組件,在整個(gè)生態(tài)中主要為我們提供服務(wù)隔離,服務(wù)熔斷,服務(wù)降級(jí)功能,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Java并發(fā)工具類之CountDownLatch詳解

    Java并發(fā)工具類之CountDownLatch詳解

    這篇文章主要介紹了Java并發(fā)工具類之CountDownLatch詳解,CountDownLatch可以使一個(gè)獲多個(gè)線程等待其他線程各自執(zhí)行完畢后再執(zhí)行,CountDownLatch可以解決那些一個(gè)或者多個(gè)線程在執(zhí)行之前必須依賴于某些必要的前提業(yè)務(wù)先執(zhí)行的場(chǎng)景,需要的朋友可以參考下
    2023-12-12
  • 一文掌握SpringSecurity?BCrypt密碼加密和解密

    一文掌握SpringSecurity?BCrypt密碼加密和解密

    BCrypt就是一款加密工具,可以比較方便地實(shí)現(xiàn)數(shù)據(jù)的加密工作。也可以簡(jiǎn)單理解為它內(nèi)部自己實(shí)現(xiàn)了隨機(jī)加鹽處理,這篇文章主要介紹了SpringSecurity?BCrypt密碼加密和解密,一文學(xué)會(huì)使用BCryptPasswordEncoder的方法,需要的朋友可以參考下
    2023-04-04
  • Java中的異常和處理機(jī)制實(shí)例詳解

    Java中的異常和處理機(jī)制實(shí)例詳解

    這篇文章主要介紹了Java中的異常和處理機(jī)制,結(jié)合實(shí)例形式詳細(xì)分析了Java異常與處理機(jī)制的相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    在 WEB-APP 中一般應(yīng)用于:登錄、注冊(cè)、買某票、秒殺等場(chǎng)景,大家都接觸過(guò)這個(gè)驗(yàn)證碼操作,今天小編通過(guò)實(shí)例代碼給大家講解javaweb實(shí)現(xiàn)驗(yàn)證碼功能,需要的朋友參考下
    2017-02-02
  • Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作

    Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作

    在本篇文章里小編給大家整理了一篇關(guān)于Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法

    Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法

    Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問(wèn)控制解決方案的安全框架。這篇文章主要介紹了Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法,需要的朋友可以參考下
    2018-03-03
  • javaweb Servlet開(kāi)發(fā)總結(jié)(一)

    javaweb Servlet開(kāi)發(fā)總結(jié)(一)

    Servlet是sun公司提供的一門(mén)用于開(kāi)發(fā)動(dòng)態(tài)web資源的技術(shù)。這篇文章主要介紹了javaweb Servlet開(kāi)發(fā)的第一篇,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評(píng)論

石狮市| 漾濞| 奇台县| 哈密市| 丹巴县| 麦盖提县| 新化县| 山阴县| 开远市| 兰考县| 青岛市| 比如县| 昌乐县| 宁强县| 宜城市| 吐鲁番市| 托克托县| 长顺县| 六安市| 县级市| 广灵县| 株洲县| 吐鲁番市| 汉中市| 五大连池市| 土默特左旗| 岗巴县| 灵寿县| 秦皇岛市| 临江市| 张家口市| 刚察县| 平定县| 南木林县| 灵台县| 山阴县| 镇康县| 喜德县| 华蓥市| 巫山县| 江安县|