欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java正則表達式循環(huán)匹配字符串方式

 更新時間:2022年03月21日 15:22:00   作者:It_BeeCoder  
這篇文章主要介紹了Java正則表達式循環(huán)匹配字符串方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

正則表達式循環(huán)匹配字符串

public static void main(String[] args) {
    /**
     * String str = "[Part 'name=1234567']";
     */
    String targetStr = "where 1=1 [and user_name like '%$user_name$%']  [and company_name like '%$company_name$%']";
    String[] split = targetStr.split("]");
    System.out.println("split==== " + split);
    String patternStr = "^[\\s\\S]{0,}\\[\\s{0,}and\\s{0,}[\\d\\W\\w]{1,}\\s{0,}[\\w]{1,}\\s{0,}\\W{0,}(\\$.+?\\$)\\W{0,}\\s{0,}\\s{0,}$";
 
    // 正則表達式
    Pattern pattern = Pattern.compile(patternStr);
    // 參數(shù):要匹配的目標字符串
    Map<String,String> map = new HashMap<String,String>();
    map.put("$user_name$","user_value");
    map.put("$company_name$","company_value");
    map.put("$school_name$","$school_name$");
    /*int groupCount = matcher.groupCount();
    System.out.println("groupCount==== " + groupCount);*/
    for (int i = 0;i<=split.length-1;i++) {
        Matcher matcher = pattern.matcher(split[i]);
        System.out.println("split[i]==== " + split[i]);
        boolean b = matcher.find();
        if (b) {
            String key = matcher.group(1);
            for (Map.Entry<String,String> m : map.entrySet()){
                String mapKey = m.getKey();
                if (key.equalsIgnoreCase(mapKey)) {
                    System.out.println("key==== " + key );
                    /*String bigGroup = matcher.group();
                    System.out.println("bigGroup==== " + bigGroup);*/
                    targetStr = targetStr.replace(key,m.getValue());
                   // System.out.println("targetStr after replace innner==== " + targetStr);
                }
            } 
        }
      //  System.out.println("targetStr after replace outer==== " + targetStr);
    }
    System.out.println("targetStr after replace final==== " + targetStr);
}

Java匹配正則表達式大全

java匹配字符串表達式在我們數(shù)據(jù)處理方面是及其重要的,現(xiàn)在就把我這幾天數(shù)據(jù)處理比較常用的向大家介紹一下,常規(guī)的一些匹配方式就不介紹了,我們來學習一些特殊的

我們先舉個例子來看看Java匹配正則表達式

Pattern pattern = Pattern.compile("采購(人名稱|人單位|名稱).*");
?? ??? ?Matcher matcher = pattern.matcher("采購名稱乒位");
?? ??? ?String dateStr = null;
?? ??? ?if (matcher.find()) {
?? ??? ??? ?dateStr = matcher.group(0);
?? ??? ??? ?System.out.println(dateStr);
?? ??? ?}

運行結(jié)果如下:

匹配表達式的特殊情況

(1)匹配中文字符

Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
?? ??? ?Matcher matcher = pattern.matcher("2322購購購購232323");
?? ??? ?String dateStr = null;
?? ??? ?if (matcher.find()) {
?? ??? ??? ?dateStr = matcher.group(0);
?? ??? ??? ?System.out.println(dateStr);
?? ??? ?}

運行結(jié)果如下:

(2)匹配從規(guī)定字符開始所有非換行字符

Pattern pattern = Pattern.compile("1.*");
?? ??? ?Matcher matcher = pattern.matcher("2312購購購購232323");
?? ??? ?String dateStr = null;
?? ??? ?if (matcher.find()) {
?? ??? ??? ?dateStr = matcher.group(0);
?? ??? ??? ?System.out.println(dateStr);
?? ??? ?}

運行結(jié)果如圖:

(3)使用字符串數(shù)組匹配多個條件匹配字符串,這是我在實習進行處理數(shù)據(jù)的一個例子,希望有助于大家理解:

(4)對于字符串匹配查找多個符合條件的字符字串,我們用到group(),

  • group(num=0): 匹配的整個表達式的字符串,group() 可以一次輸入多個組號,在這種情況下它將返回一個包含那些組所對應值的元組。 
  • groups(): 返回一個包含所有小組字符串的元組,從 1 到 所含的小組號。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java8 HashMap遍歷方式性能探討

    Java8 HashMap遍歷方式性能探討

    JDK8之前,可以使用keySet或者entrySet來遍歷HashMap,JDK8中引入了map.foreach來進行遍歷
    2021-09-09
  • Java分治法與二分搜索算法實例分析

    Java分治法與二分搜索算法實例分析

    這篇文章主要介紹了Java分治法與二分搜索算法,簡單講述了分治法與二分搜索算法的原理并結(jié)合java實例分析了二分搜索算法的實現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-11-11
  • Java 生成隨機驗證碼圖片的示例

    Java 生成隨機驗證碼圖片的示例

    這篇文章主要介紹了Java 生成隨機驗證碼圖片的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • springboot 設置server.port不生效的原因及解決

    springboot 設置server.port不生效的原因及解決

    這篇文章主要介紹了springboot 設置server.port不生效的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot?模板模式實現(xiàn)優(yōu)惠券邏輯的示例代碼

    SpringBoot?模板模式實現(xiàn)優(yōu)惠券邏輯的示例代碼

    這篇文章主要介紹了SpringBoot?模板模式實現(xiàn)優(yōu)惠券邏輯,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 深入理解Java設計模式之觀察者模式

    深入理解Java設計模式之觀察者模式

    這篇文章主要介紹了JAVA設計模式之觀察者模式的的相關(guān)資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解
    2021-11-11
  • Java匿名內(nèi)部類的使用方法舉例詳解

    Java匿名內(nèi)部類的使用方法舉例詳解

    Java中的匿名內(nèi)部類是一種沒有名字的局部內(nèi)部類,主要用于一次性實現(xiàn)接口或繼承類的場合,它們常見于GUI事件處理、多線程編程等場景,簡化代碼結(jié)構(gòu)同時提高開發(fā)效率,需要的朋友可以參考下
    2024-09-09
  • Mybatis日志模塊的適配器模式詳解

    Mybatis日志模塊的適配器模式詳解

    這篇文章主要介紹了Mybatis日志模塊的適配器模式詳解,,mybatis用了適配器模式來兼容這些框架,適配器模式就是通過組合的方式,將需要適配的類轉(zhuǎn)為使用者能夠使用的接口
    2022-08-08
  • spring cloud實現(xiàn)前端跨域問題的解決方案

    spring cloud實現(xiàn)前端跨域問題的解決方案

    這篇文章主要介紹了 spring cloud實現(xiàn)前端跨域問題的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • maven多profile 打包下 -P參和-D參數(shù)的實現(xiàn)

    maven多profile 打包下 -P參和-D參數(shù)的實現(xiàn)

    這篇文章主要介紹了maven多profile 打包下 -P參和-D參數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論