亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java正則多字符串匹配替換

2019-11-26 16:15:18
字體:
來源:轉載
供稿:網友

Java中使用也比較簡單:
1. 編譯正則表達式的字面值得到對應的模式Pattern對象;

2. 創建匹配給定輸入與此模式的匹配器Matcher;

3. 通過匹配器對象執行操作,匹配器對象的方法很豐富,方法之間組合使用更加強大。

復制代碼 代碼如下:

public static void main(String[] args) {
    //被替換關鍵字的的數據源
    Map<String,String> tokens = new HashMap<String,String>();
    tokens.put("cat", "Garfield");
    tokens.put("beverage", "coffee");

    //匹配類似velocity規則的字符串
    String template = "${cat} really needs some ${beverage}.";
    //生成匹配模式的正則表達式
    String patternString = "http://$//{(" + StringUtils.join(tokens.keySet(), "|") + ")//}";

    Pattern pattern = Pattern.compile(patternString);
    Matcher matcher = pattern.matcher(template);

    //兩個方法:appendReplacement, appendTail
    StringBuffer sb = new StringBuffer();
    while(matcher.find()) {
        matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
    }
    matcher.appendTail(sb);

    //out: Garfield really needs some coffee.
    System.out.println(sb.toString());

    //對于特殊含義字符"/","$",使用Matcher.quoteReplacement消除特殊意義
    matcher.reset();
    //out: cat really needs some beverage.
    System.out.println(matcher.replaceAll("$1"));
    //out: $1 really needs some $1.
    System.out.println(matcher.replaceAll(Matcher.quoteReplacement("$1")));

    //到得郵箱的前綴名。插一句,其實驗證郵箱的正則多種多樣,根據自己的需求寫對應的正則才是王道
    String emailPattern = "^([a-z0-9_//.//-//+]+)@([//da-z//.//-]+)//.([a-z//.]{2,6})$";
    pattern = Pattern.compile(emailPattern);
    matcher = pattern.matcher("test@qq.com");
    //驗證是否郵箱
    System.out.println(matcher.find());
    //得到@符號前的郵箱名  out: test
    System.out.println(matcher.replaceAll("$1"));

    //獲得匹配值
    String temp = "<meta-data android:name=/"appid/" android:value=/"joy/"></meta-data>";
    pattern = Pattern.compile("android:(name|value)=/"(.+?)/"");
    matcher = pattern.matcher(temp);
    while(matcher.find()) {
        //out: appid, joy
        System.out.println(matcher.group(2));
    }
}


一些老是忘基礎


[...] 位于括號之內的任意字符

[^...] 不在括號之中的任意字符

. 除了換行符之外的任意字符,等價于[^/n]

/w 任何單字字符, 等價于[a-zA-Z0-9]

/W 任何非單字字符,等價于[^a-zA-Z0-9]

/s 任何空白符,等價于[/ t / n / r / f / v]

/S 任何非空白符,等價于[^/ t / n / r / f / v]

/d 任何數字,等價于[0-9]

/D 除了數字之外的任何字符,等價于[^0-9]

[/b] 一個退格直接量(特例)

 

{n, m} 匹配前一項至少n次,但是不能超過m次

{n, } 匹配前一項n次,或者多次

{n} 匹配前一項恰好n次

? 匹配前一項0次或1次,也就是說前一項是可選的. 等價于 {0, 1}

+ 匹配前一項1次或多次,等價于{1,}

* 匹配前一項0次或多次.等價于{0,}

 

| 選擇.匹配的要么是該符號左邊的子表達式,要么它右邊的子表達式

(...) 分組.將幾個項目分為一個單元.這個單元可由 *、+、?和|等符號使用,而且還可以記住和這個組匹配的字符以供此后引用使用

/n 和第n個分組所匹配的字符相匹配.分組是括號中的子表達式(可能是嵌套的).分組號是從左到右計數的左括號數

 

^ 匹配的是字符的開頭,在多行檢索中,匹配的是一行的開頭

$ 匹配的是字符的結尾,在多行檢索中,匹配的是一行的結尾

/b 匹配的是一個詞語的邊界.簡而言之就是位于字符/w 和 /w之間的位置(注意:[/b]匹配的是退格符)

/B 匹配的是非詞語的邊界的字符


題外話


郵箱驗證,以前驗證郵箱,網上搜個正則裝在自己程序里面就用,其實這是不對的,不同的公司對郵箱的驗證格式是不一樣的,比方說163和qq郵箱注冊,他們要求的格式都不一樣,所以搜一個正則表達式就去套所有的郵箱格式也是不對的,符合自己的需求的正則才是正確的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美理论电影在线观看| 美日韩在线视频| 日本久久久久亚洲中字幕| 国产精品久久久久99| 欧美一级大片在线免费观看| 久久五月情影视| 亚洲3p在线观看| 日韩一区二区欧美| 成人福利视频在线观看| 国产91精品高潮白浆喷水| 久久国产精品久久精品| 在线播放国产一区中文字幕剧情欧美| 成人免费淫片视频软件| 高清在线视频日韩欧美| 亚洲美女av电影| 国产亚洲视频在线观看| 庆余年2免费日韩剧观看大牛| 欧美日韩国产限制| 国语自产在线不卡| 久久久精品一区| wwwwwwww亚洲| 精品夜色国产国偷在线| 久久精品电影一区二区| 久久天天躁狠狠躁夜夜躁| 国产精品成人播放| 九九精品视频在线观看| 欧美国产日韩在线| 91精品久久久久久| 青草热久免费精品视频| 欧美精品国产精品日韩精品| 国产精品日韩久久久久| 精品高清美女精品国产区| 正在播放欧美一区| 亚洲精品日韩激情在线电影| 国语自产精品视频在线看| 91美女高潮出水| 精品无人区太爽高潮在线播放| 在线精品国产成人综合| 欧美日韩一区二区在线| 国产亚洲欧美一区| 亚洲欧美一区二区三区情侣bbw| 岛国av一区二区在线在线观看| 久久久av免费| 欧美高跟鞋交xxxxhd| 欧美精品激情视频| 成人在线视频福利| 国产精品丝袜久久久久久不卡| 亚洲一区精品电影| 亚洲免费精彩视频| 亚洲国产欧美久久| 国产精品v片在线观看不卡| 色在人av网站天堂精品| 中文字幕日韩欧美| 欧美日韩激情美女| 97**国产露脸精品国产| 97人人模人人爽人人喊中文字| 最近2019中文字幕一页二页| 欧美激情二区三区| 国产亚洲精品久久久| 亚洲视频在线免费看| 国产激情综合五月久久| 91精品综合久久久久久五月天| 国产一区二区三区三区在线观看| 亚洲xxx大片| 亚洲综合中文字幕68页| 国产丝袜一区二区| 亚洲毛片在线看| 久久精品国亚洲| 国产91精品在线播放| 亚洲va男人天堂| 精品视频9999| 亚洲午夜国产成人av电影男同| 国产精品第100页| 国内揄拍国内精品| 亚洲人成亚洲人成在线观看| 中文字幕9999| 国产视频久久久久久久| 欧美日韩在线观看视频小说| 欧美激情手机在线视频| 一本大道香蕉久在线播放29| 欧美日韩一区二区在线播放| 欧美日韩国产精品一区| 欧美日韩激情视频| 欧美电影在线免费观看网站| 91沈先生作品| 欧美精品日韩www.p站| 国产精品久久久久久久久久尿| 97婷婷涩涩精品一区| 国产精品电影在线观看| 久久久久久免费精品| 欧美性xxxx18| 国产精品三级久久久久久电影| 亚洲欧美另类人妖| 国产精品美女在线观看| 色悠久久久久综合先锋影音下载| 亚洲欧洲视频在线| 中文字幕在线成人| 成人免费视频在线观看超级碰| 欧美日韩在线第一页| 国产福利精品在线| 久久夜色精品国产亚洲aⅴ| 亚洲摸下面视频| 青草热久免费精品视频| 国产精品电影久久久久电影网| 国产日韩欧美影视| 久久99精品久久久久久青青91| 欧美激情乱人伦一区| 26uuu亚洲伊人春色| 日韩精品免费在线视频| 国产精品久久久久久一区二区| 久久91亚洲精品中文字幕| 91在线直播亚洲| 91香蕉亚洲精品| 日韩美女免费观看| 欧美激情一区二区三区成人| 在线观看久久av| 欧美一区二区三区精品电影| 国产精品久久久久久久电影| 亚洲直播在线一区| 亚洲色图美腿丝袜| 国产精品视频自拍| 欧美激情视频三区| 日韩一区在线视频| 国产成人在线精品| 欧美性理论片在线观看片免费| 欧美性xxxx极品hd欧美风情| 国产成人精品a视频一区www| 亚洲欧美资源在线| 国产精品69久久| 日韩在线欧美在线国产在线| 福利一区福利二区微拍刺激| 欧美中文字幕视频在线观看| 中文字幕少妇一区二区三区| 亚洲精品大尺度| 久久精品视频免费播放| 久久精品成人一区二区三区| 91免费福利视频| 日韩在线观看免费高清完整版| 国产精品久久久久久久久久ktv| 日韩精品中文在线观看| 91精品国产综合久久久久久蜜臀| 91精品国产91久久久久久不卡| 国产精品久久久久久久天堂| 综合久久五月天| 2023亚洲男人天堂| 亚洲色图欧美制服丝袜另类第一页| 久久成人综合视频| 国产日韩综合一区二区性色av| 国产亚洲精品高潮| 精品国产91乱高清在线观看| 日韩黄在线观看| 国产精品日韩一区| 亚洲欧美另类自拍| 亚洲精品欧美日韩| 国产成人一区二区在线| 日韩精品视频在线观看免费| 国产精品一二三视频| 国产网站欧美日韩免费精品在线观看| 亚洲自拍偷拍色图| 欧美精品一二区| 国产精品成人aaaaa网站| 亚洲欧美日韩国产中文专区| 亚洲精品国产精品国自产观看浪潮| 亚洲国产精品字幕|