ホームページ Java &#&チュートリアル HTML のタグ内の漢字の Java 正規一致の例

HTML のタグ内の漢字の Java 正規一致の例

Jan 22, 2017 pm 02:27 PM

本文实例讲述了java正则匹配HTML中a标签里的中文字符。分享给大家供大家参考,具体如下:

今天群里一位朋友问到了一个正则表达式的问题,有如下内容:

1

2

3

4

5

<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>标签中的文字</a>

ログイン後にコピー

现在要匹配出内容包含中文但标签的属性中不包含comment的<a>标签中的汉字。

解决思路如下:

1、首先匹配出不包括comment的<a>标签;

2、在匹配结果中进行二次匹配出中文;

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

package com.mmq.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

 * @use 匹配HTML的&lt;a&gt;标签中的中文字符

 * @ProjectName stuff

 * @Author mumaoqiang

 * @FullName com.mmq.regex.MatchChineseCharacters.java

 * @JDK 1.6.0

 * @Version 1.0

 */

public class MatchChineseCharacters {

  /**

   * 根据输入的内容,匹配出包含中文但不包含comment的&lt;a&gt;标签中的中文字符

   * @param source 要匹配的内容

   * @return &lt;a&gt;标签中的中文字符

   */

  public static String matchChineseCharacters(String source) {

    //匹配出包含中文但不包含comment的&lt;a&gt;标签

    String reg = &quot;&lt;a((?!comment).)*?&gt;([^&lt;&gt;]*?[\\u4e00-\\u9fa5]+[^&lt;&gt;]*?)+(?=&lt;/a&gt;)&quot;;

    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);

      //对结果进行二次正则,匹配出中文字符

      String reg1 = &quot;[\\u4e00-\\u9fa5]+&quot;;

      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(&quot;&lt;a href=&#39;www.baidu.comds=id32434#comment&#39;rewr&gt;特432&lt;/a&gt;453543&lt;a guhll,,l&gt;a1特123你好123吗?&lt;/a&gt;&lt;a href=id=32434#comment&#39;ewrer&gt;特2&lt;/a&gt;&lt;a&gt;标签中的文字&lt;/a&gt;&quot;);

    System.out.println(result);

  }

}

ログイン後にコピー

输出结果如下:

1

2

3

&lt;a guhll,,l&gt;a1特123你好123吗?

&lt;a&gt;标签中的文字

特你好吗标签中的文字

ログイン後にコピー

这里做一下解释:

1

String reg = &quot;&lt;a((?!comment).)*?&gt;([^&lt;&gt;]*?[\\u4e00-\\u9fa5]+[^&lt;&gt;]*?)+(?=&lt;/a&gt;)&quot;;

ログイン後にコピー

这个匹配内容包含中文但标签的属性中不包含comment的<a>标签的正则中,不能使用向后查找?<=,因为向后查找只能是固定长度的内容,这里<a>标签中属性不确定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=</a>)使用向前查找?=,在结果中不会包含结束标签</a>。

这个问题就这样得到解决了。如果说要匹配指定标签中的指定内容,那么也是很容易改进的了。若有更好的正则,还请留言相互学习。

希望本文所述对大家java程序设计有所帮助。

更多java正则匹配HTML中a标签里的中文字符示例相关文章请关注PHP中文网!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Mar 17, 2025 pm 05:35 PM

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? 高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? Mar 17, 2025 pm 05:46 PM

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte 2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte Mar 07, 2025 pm 06:09 PM

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Mar 11, 2025 pm 05:51 PM

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか?

node.js 20:キーパフォーマンスが向上し、新機能 node.js 20:キーパフォーマンスが向上し、新機能 Mar 07, 2025 pm 06:12 PM

node.js 20:キーパフォーマンスが向上し、新機能

Iceberg:データレイクテーブルの未来 Iceberg:データレイクテーブルの未来 Mar 07, 2025 pm 06:31 PM

Iceberg:データレイクテーブルの未来

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:43 PM

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? Mar 17, 2025 pm 05:44 PM

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?

See all articles