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

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

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

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

今天群里一位朋友問到了一個正則表達(dá)式的問題,有如下內(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);
      //對結(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>)";

這個匹配內(nèi)容包含中文但標(biāo)簽的屬性中不包含comment的<a>標(biāo)簽的正則中,不能使用向后查找?<=,因為向后查找只能是固定長度的內(nèi)容,這里<a>標(biāo)簽中屬性不確定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=</a>)使用向前查找?=,在結(jié)果中不會包含結(jié)束標(biāo)簽</a>。

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

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

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

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

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

相關(guān)文章

  • mac下idea啟動web項目報錯java.net.SocketException:socket closed問題

    mac下idea啟動web項目報錯java.net.SocketException:socket closed

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

    springmvc限流攔截器的示例代碼

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

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

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

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

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

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

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

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

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

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

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

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

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

    Spring Security驗證流程剖析及自定義驗證方法

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

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

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

最新評論

康乐县| 铁力市| 濮阳市| 玉山县| 灵武市| 镇雄县| 法库县| 威海市| 渭源县| 进贤县| 邹城市| 西贡区| 武义县| 友谊县| 建湖县| 辽中县| 克东县| 阳泉市| 东光县| 广平县| 延川县| 千阳县| 泽库县| 兰州市| 肃北| 景洪市| 通海县| 松溪县| 芜湖县| 房产| 无棣县| 信宜市| 泗阳县| 凤庆县| 阿拉善右旗| 郁南县| 顺昌县| 平昌县| 湘阴县| 都匀市| 玛纳斯县|