本篇內(nèi)容介紹了“ 怎么使用正則表達(dá)式”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
鎮(zhèn)巴ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
編程總在實(shí)踐中出結(jié)果!
正則表達(dá)式,又稱規(guī)則表達(dá)式。(英語:Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式(規(guī)則)的文本。
正則引擎主要可以分為兩大類:一種是DFA,一種是NFA。這兩種引擎都有了很久的歷史(至今二十多年),當(dāng)中也由這兩種引擎產(chǎn)生了很多變體!于是POSIX的出臺(tái)規(guī)避了不必要變體的繼續(xù)產(chǎn)生。這樣一來,主流的正則引擎又分為3類:一、DFA,二、傳統(tǒng)型NFA,三、POSIX NFA。
正則也是一種非常有意思的技術(shù),但往往不知道這些符號(hào)的編程在實(shí)際使用中該如何使用,因此總結(jié)了本篇文章,方便所有小伙伴可以當(dāng)成一個(gè)工具文章使用,方便處理一些需要使用正則的技術(shù)內(nèi)容。
"a".matches(".")
"a".matches("[abc]")
"a".matches("[^abc]")
"A".matches("[a-zA-Z]")
"A".matches("[a-z]|[A-Z]")
"A".matches("[a-z(A-Z)]")
"R".matches("[A-Z&&(RFG)]")
"a_8".matches("\\w{3}")
"\\".matches("\\\\")
"hello sir".matches("h.*")
"hello sir".matches(".*ir$")
"hello sir".matches("^h[a-z]{1,3}o\\b.*")
"hellosir".matches("^h[a-z]{1,3}o\\b.*")
" \n".matches("^[\\s&&[^\\n]]*\\n$")
^[\\s&&[^\\n]]
,且不能是換行符,最后必須是換行
\\n$
System.out.println("java".matches("(?i)JAVA"));
Pattern p = Pattern.compile("[a-z]{3,}");
Matcher m = p.matcher("fgha");
System.out.println(m.matches()); // true,匹配字符3次及以上
Pattern p = Pattern.compile("\\d{3,5}");
Matcher m = p.matcher("123-4536-89789-000");
System.out.println(m.matches());
m.reset();// 把吃進(jìn)去的字符吐出來重新匹配,否經(jīng)過m2.matches會(huì)吃進(jìn)去字符 下面的匹配就不成功
System.out.println(m.find());
System.out.println(m.start() + "-" + m.end()); // 找到了 就把首位位置打印下(必須找到才能打?。?br/>System.out.println(m.find());
System.out.println(m.start() + "-" + m.end()); // 找到了 就把首位位置打印下(必須找到才能打?。?br/>System.out.println(m.find());
System.out.println(m.start() + "-" + m.end()); // 找到了 就把首位位置打印下(必須找到才能打?。?br/>System.out.println(m.find());
System.out.println(m.lookingAt()); //每次都是才頭上開始找
測(cè)試結(jié)果
false
true
0-3
true
4-8
true
9-14
true
true
Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java_Java_jAva_jAVa_IloveJava");
System.out.println(m.replaceAll("JAVA"));
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java_Java_jAva_jAVa_IloveJava fdasfas");
StringBuffer sb = new StringBuffer();
int i = 0;
while (m.find()) {
i++;
if (i % 2 == 0) {
m.appendReplacement(sb, "java");
} else {
m.appendReplacement(sb, "JAVA");
}
}
m.appendTail(sb);
System.out.println(sb);
i % 2
,進(jìn)行單雙數(shù)替換匹配 Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
Matcher m = p.matcher("123bb_78987dd_090po");
while(m.find()){
System.out.println(m.group(1));
}
結(jié)果:
123
78987
090
Process finished with exit code 0
描述:分組加括號(hào)只取數(shù)字一組,grop括號(hào)里面第0組是整體,第一組是左起第一個(gè)括號(hào),第二組是左起第二個(gè)括號(hào)
Pattern p = Pattern.compile("(.{3,10}?)[0-9]");
Matcher m = p.matcher("aaaa5dddd8");
while (m.find()) {
System.out.println(m.start() + "-" + m.end());
}
結(jié)果:
0-5
5-10
Process finished with exit code 0
描述:.{3,10}后面沒問號(hào)就是貪婪匹配會(huì)配到最長(zhǎng),如果{3,10}?加?號(hào)就是懶蛋匹配之匹配最少的,從3個(gè)開始找。如果這里用if(m.find)(){m.start()+"-"+m.end()} 那么之匹配第一個(gè)
Pattern p = Pattern.compile(".{3}");
Matcher m = p.matcher("ab4dd5");
while(m.find()){
System.out.println(m.group());
}
結(jié)果:
ab4
5-10
Process finished with exit code 0
描述:每次匹配三個(gè)任意字符,用 m.group() 輸出。
Pattern p = Pattern.compile(".{3}(?=a)");
Matcher m = p.matcher("ab4add5");
while (m.find()) {
System.out.println("后面不能是a的:" + m.group());
}
后面不能是a的:ab4
Pattern p = Pattern.compile("(?!a).{3}");
Matcher m = p.matcher("abbsab89");
while (m.find()) {
System.out.println("前面不能是a的:" + m.group());
}
Pattern p = Pattern.compile("(?!>).+(?=<)");
Matcher m = p.matcher(">小傅哥<");
while (m.find()) {
System.out.println(m.group());
}
Pattern p = Pattern.compile("(\\d\\d)\\1");
Matcher m = p.matcher("1212");
System.out.println(m.matches());
“ 怎么使用正則表達(dá)式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!