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

Java?正則表達式高級用法實例詳解

 更新時間:2025年06月20日 09:31:18   作者:feifeigo123  
Java?中的正則表達式是強大的文本處理工具,可以用于搜索、匹配、替換和分割字符串,下面給大家介紹Java?正則表達式高級用法,感興趣的朋友一起看看吧

Java 中的正則表達式(Regular Expressions)是強大的文本處理工具,可以用于搜索、匹配、替換和分割字符串。Java 提供了 java.util.regex 包來支持正則表達式的使用。以下是一些 Java 正則表達式的高級用法。

1. 使用 Pattern 和 Matcher

在 Java 中,正則表達式的使用通常涉及到 Pattern 和 Matcher 類。這兩個類使得正則表達式的編譯和匹配過程更為高效。

import java.util.regex.Pattern;
import java.util.regex.Matcher;
String input = "Hello, my email is example@example.com";
String regex = "\\w+@\\w+\\.com";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println("找到的郵箱: " + matcher.group());
}

2. 斷言(Assertions)

正則表達式中的斷言用于匹配某些條件但不包括這些條件的字符。常見的斷言有:

  • 正向前瞻(Positive Lookahead) (?=...)
  • 負向前瞻(Negative Lookahead) (?!...)
  • 正向后顧(Positive Lookbehind) (?<=...)
  • 負向后顧(Negative Lookbehind) (?<!...)

示例:匹配包含數(shù)字的單詞,但不包含數(shù)字。

String input = "abc1 def2 ghi";
String regex = "\\b(?=\\w*)(?<!\\d)\\w+\\b";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println("匹配的單詞: " + matcher.group());
}

3. 捕獲組和命名組

捕獲組用于提取匹配到的部分,命名組可以提高可讀性。

捕獲組

String input = "My name is John and I am 30 years old.";
String regex = "name is (\\w+) and I am (\\d+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
    System.out.println("姓名: " + matcher.group(1)); // John
    System.out.println("年齡: " + matcher.group(2)); // 30
}

命名組

String input = "My name is John and I am 30 years old.";
String regex = "name is (?<name>\\w+) and I am (?<age>\\d+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
    System.out.println("姓名: " + matcher.group("name")); // John
    System.out.println("年齡: " + matcher.group("age")); // 30
}

4. 替換操作

使用 Matcher 可以進行文本的替換。

String input = "The quick brown fox jumps over the lazy dog.";
String regex = "brown";
String replacement = "black";
String result = input.replaceAll(regex, replacement);
System.out.println("替換后的字符串: " + result); // The quick black fox jumps over the lazy dog.

5. 分割字符串

使用正則表達式來分割字符串。

String input = "apple, banana; orange: melon";
String regex = "[,;:]\\s*"; // 逗號、分號、冒號及其后可選空格
String[] fruits = input.split(regex);
for (String fruit : fruits) {
    System.out.println(fruit);
}

6. 使用修飾符

可以使用修飾符來修改正則匹配的行為,例如:

  • Pattern.CASE_INSENSITIVE: 忽略大小寫
  • Pattern.MULTILINE: 多行模式

例如:

String input = "Hello World\nhello world";
String regex = "hello";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println("找到的匹配: " + matcher.group());
}

7. Unicode 支持

Java 正則表達式支持 Unicode 字符,可以用于匹配國際化文本。

String input = "你好,世界";
String regex = "\\p{Han}+"; // 匹配漢字
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println("找到的中文: " + matcher.group());
}

到此這篇關于Java 正則表達式高級用法的文章就介紹到這了,更多相關Java 正則表達式用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 23種設計模式(3) java原型模式

    23種設計模式(3) java原型模式

    這篇文章主要為大家詳細介紹了23種設計模式之java原型模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • springboot如何使用@ConfigurationProperties封裝配置文件

    springboot如何使用@ConfigurationProperties封裝配置文件

    springboot如何使用@ConfigurationProperties封裝配置文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringMVC多個文件上傳及上傳后立即顯示圖片功能

    SpringMVC多個文件上傳及上傳后立即顯示圖片功能

    這篇文章主要介紹了SpringMVC多個文件上傳及上傳后立即顯示圖片功能,非常不錯,具有參考借鑒價值功能,需要的朋友可以參考下
    2017-10-10
  • Spring?Boot日志基礎使用之如何設置日志級別

    Spring?Boot日志基礎使用之如何設置日志級別

    這篇文章主要介紹了Spring?Boot日志基礎使用設置日志級別的方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 玩轉(zhuǎn)spring boot 結(jié)合jQuery和AngularJs(3)

    玩轉(zhuǎn)spring boot 結(jié)合jQuery和AngularJs(3)

    玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合jQuery和AngularJs,玩轉(zhuǎn)spring boot,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MyBatis OGNL 表達式的避坑指南

    MyBatis OGNL 表達式的避坑指南

    本文主要介紹了MyBatis OGNL 表達式的避坑指南,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • SpringBoot中GlobalExceptionHandler異常處理機制詳細說明

    SpringBoot中GlobalExceptionHandler異常處理機制詳細說明

    Spring Boot的GlobalExceptionHandler是一個全局異常處理器,用于捕獲和處理應用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關于Java中GlobalExceptionHandler異常處理機制的相關資料,需要的朋友可以參考下
    2024-03-03
  • EL表達式的隱式對象_動力節(jié)點Java學院整理

    EL表達式的隱式對象_動力節(jié)點Java學院整理

    這篇文章主要介紹了EL表達式的隱式對象,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java數(shù)組歸納總結(jié)

    Java數(shù)組歸納總結(jié)

    這篇文章主要介紹了Java數(shù)組歸納總結(jié),總結(jié)內(nèi)容有一維數(shù)組、二維數(shù)組、遍歷數(shù)組、替換元素、數(shù)組排序、數(shù)組拷貝、元素查詢、排序算法,下面來看看這些方法的相關資料,需要的小伙伴可以辛苦一下
    2022-01-01
  • java獲取properties屬性文件示例

    java獲取properties屬性文件示例

    Properties類表示了一個持久的屬性集。Properties可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串。本文使用java讀取這些屬性,看下面詳細介紹吧
    2014-01-01

最新評論

辽源市| 霍林郭勒市| 琼海市| 巫山县| 宜昌市| 宁津县| 大连市| 沅陵县| 仪陇县| 迁西县| 高邑县| 二连浩特市| 陕西省| 新巴尔虎右旗| 绵阳市| 布拖县| 商南县| 双江| 舒兰市| 公主岭市| 土默特右旗| 项城市| 尉氏县| 鹿泉市| 台东县| 彰化县| 弥勒县| 武威市| 东安县| 天台县| 隆化县| 承德县| 庆阳市| 扶沟县| 博客| 色达县| 九台市| 剑川县| 长沙县| 新竹县| 日喀则市|