国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

正則表達(dá)式學(xué)習(xí)筆記

這篇具有很好參考價(jià)值的文章主要介紹了正則表達(dá)式學(xué)習(xí)筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

正則表達(dá)式學(xué)習(xí)筆記

一、常用正則表達(dá)式

1、匹配字母       Pattern pattern=Pattern.compile("[a-zA-Z]+");
2、匹配數(shù)字      Pattern pattern=Pattern.compile("[0-9]+");
3、匹配字母和數(shù)字 Pattern pattern=Pattern.compile("([0-9]+)|([a-zA-Z]+)");
4、匹配百度排行榜 Pattern pattern=Pattern.compile("<a target=\"_blank\" title=\"(\\S*)\"");
5、匹配IP地址:Pattern pattern=Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d+");
6、匹配4位數(shù)字:Pattern pattern=Pattern.compile("\\d\\d\\d\\d");
7、匹配

二、需要轉(zhuǎn)義的字符

.*+()$/\?[]^{}
字符 說明
\ 將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。
例如:“n"匹配字符串"n”?!癨n"匹配換行符。序列”\\“匹配”\“,”\(“匹配”("。
^ 匹配輸入字符串開始的位置。
如果設(shè)置了RegExp對(duì)象的Multiline屬性,^還會(huì)與"\n"或"\r"之后的位置匹配。
$ 匹配輸入字符串結(jié)尾的位置。
如果設(shè)置了RegExp對(duì)象的Multiline屬性,$還會(huì)與"\n"或"\r"之前的位置匹配。
當(dāng)此字符緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后時(shí),匹配模式是“非貪心的”。
“非貪心的”模式匹配搜索到的、盡可能短的字符串,而默認(rèn)的“貪心的”模式匹配搜索到的、盡可能長(zhǎng)的字符串。
例如:在字符串“oooo”中,"o+?“只匹配單個(gè)"o”,而"o+“匹配所有"o”。

三、元字符

符號(hào) 含義 示例 說明 匹配輸入
[] 可接收的字符列表 [efgh] e、f、g、h中的任意1個(gè)字符
[^] 不可接收的字符列表 [^abc] 除a、b、c之外的任意1個(gè)字符,包括數(shù)字和特殊符號(hào)
- 連字符 A-Z 任意單個(gè)大寫字母
. 匹配除\n以外的任何字符 a…b 以a開頭,b結(jié)尾,中間包括2個(gè)任意字符的長(zhǎng)度為4的字符串 aaab、aefb、a35b、a#*b
\d 匹配單個(gè)數(shù)字字符,相當(dāng)于[0-9] \\d{3}(\\d)? 包含3個(gè)或4個(gè)數(shù)字的字符串 123、9876
\D 匹配單個(gè)非數(shù)字字符串,相當(dāng)于[^0-9] \\d(\\d)* 以單個(gè)非數(shù)字字符串開頭,后接任意個(gè)數(shù)字字符串 a、A342
\w 匹配單個(gè)數(shù)字、大小寫字母字符,相當(dāng)于[0-9a-zA-Z_] \\d{3}\\w{4} 以3個(gè)數(shù)字字符串開頭的長(zhǎng)度為7的數(shù)字字母字符串 234abcd、12345Pe
\W 匹配單個(gè)非數(shù)字、大小寫字符,相當(dāng)于[^0-9a-zA-Z_] \\W+\\d{2} 以至少1個(gè)非數(shù)字字母字符開頭,2個(gè)數(shù)字字符結(jié)尾的字符串 #29、#?@10
(?i) 不區(qū)分大小寫 (?i)abc、a(?i)bc、a((?i)b)c 1、abc都不區(qū)分大小寫;2、bc不區(qū)分大小寫;3、僅b不區(qū)分大小寫
\\s 匹配任何空白字符(空格,制表符等)
\\S 匹配任何非空白字符(空格,制表符等)
豎杠 匹配豎杠之前或之后的表達(dá)式

四、限定符

正則表達(dá)式學(xué)習(xí)筆記,正則表達(dá)式,學(xué)習(xí),筆記

五、Java調(diào)用代碼

逐個(gè)匹配(注意定位符)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

	public static void main(String[] args) {
		String content=".......";
		Pattern pattern=Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d+");
		//Pattern pattern=Pattern.compile(regStr,Pattern.CASE_INSENSITIVE);// 不區(qū)分大小寫
		Matcher matcher = pattern.matcher(content); // 逐個(gè)匹配
		while(matcher.find()) {
			System.out.println("--> "+matcher.group(0));
		}
	}

整體匹配(推薦使用)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

	public static void main(String[] args) {
		String content=".......";
		String pattern=".*hao.*";
		boolean isMatch=Pattern.matches(pattern,content);// 整體匹配
		System.out.println(isMatch);
	}

常用其他方法

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

	public static void main(String[] args) {
		String content=".......";
		Pattern pattern=Pattern.compile("hao123");
		Matcher matcher = pattern.matcher(content);
       String newStr=matcher.replaceAll("好的");// 匹配后替換(注意:原字符串保持不變)
		
	}

六、分組

1、捕獲分組

常用分組構(gòu)造形式 說明
(pattern) 非命名捕獲。 捕獲匹配的字符串。
編號(hào)為零的第一個(gè)捕獲是由整個(gè)正則表達(dá)式模式匹配的文本,
其他捕獲結(jié)果則根據(jù)左括號(hào)的順序從1開始自動(dòng)編號(hào)。
(?<name>pattern) 命名捕獲。

舉例:

String regStr="(?<g1>\\d\\d)(?<g2>\\d\\d)";

matcher.group(0); // 找到的整體數(shù)據(jù)
matcher.group(1);// 找到的第一個(gè)分組內(nèi)容
matcher.group(“g1”);// 找到的分組名稱為g1的內(nèi)容;

2、非捕獲分組(特別分組)

常用分組構(gòu)造形式 說明
(?:pattern) 匹配pattern但不捕獲該匹配的子表達(dá)式,即它是一個(gè)非捕獲匹配,不存儲(chǔ)供以后使用的匹配。
這對(duì)于用“or”字符(|)組合模式部件的情況很有用。
例如:'industr(?:y|ies)'是比’industry|industries’更經(jīng)濟(jì)的表達(dá)式。
(?=pattern) 它是一個(gè)非捕獲匹配。
例如:'Windows(?=95|98|NT|2000)'匹配’Windows 2000’中的"Windows",但不匹配"Windows 3.1"中的"Windows"。
(?!pattern) 該表達(dá)式匹配不處于匹配pattern的字符串的起始點(diǎn)的搜索字符串。
它是一個(gè)非捕獲匹配。
例如:'Windows(?!95|98|NT|2000)'匹配"Windows 3.1"中的"Windows",但不匹配"Windows 2000"中的"Windows"。

3、反向引用

說明:內(nèi)部反向引用:\\分組號(hào),外部反向引用 $分組號(hào)。

  1. 匹配兩個(gè)連續(xù)的相同數(shù)字:(\\d)\\1
  2. 匹配五個(gè)連續(xù)相同的數(shù)字:(\\d)\\1{4}
  3. 匹配個(gè)位與千位相同,十位與百位相同的數(shù)字,比如:5225,1551 正則:(\\d)(\\d)\\2\\1
  4. 匹配商品編號(hào),形式如:12312-333-999-111,格式描述:5位數(shù)字開頭,然后一個(gè)-,然后一個(gè)9位數(shù),連續(xù)的每3位相同。正則:\\d{5}-(\\d)\\1{2}(\\d)\\2{2}(\\d)\\3{2}

應(yīng)用:將結(jié)巴的字去除掉。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegTest {

	public static void main(String[] args) {
		String regStr="我我要吃吃吃吃飯飯";
		Pattern compile = Pattern.compile("(.)\\1+");
		Matcher matcher = compile.matcher(regStr);
		String str = matcher.replaceAll("$1");
		System.out.println(str);

      // 簡(jiǎn)寫
      String str=Pattern.compile("(.)\\1+").matcher(regStr).replaceAll("$1");
	}
}

結(jié)果:
我要吃飯

4、java String類中使用正則表達(dá)式

舉例:
1、替換:要求使用正則表達(dá)式,將JDK1.3 和 JDK1.4 替換成 JDK

content=content.replaceAll("JDK1\\.3|JDK1\\.4","JDK");

2、驗(yàn)證:手機(jī)號(hào),必須是:138 139 開頭

String content="13688888888";
if(content.matches("1(38|39)\\d{8}")){
     System.out.println("ok");
}

3、分割:要求按照 # 或 - 或 ~ 或 數(shù)字 來分割

String content="hello#abc-jack12smith~北京";
String[] split=content.spllit("#|-|~|\\d+");

七、補(bǔ)充字符(不常用字符)

字符 說明
\b 匹配一個(gè)字邊界,即字與空格間的位置。
例如:"er\b"匹配“never”中的er,但不匹配“verb”中的“er”。
\B 非邊界匹配。
例如: “er\B"匹配"verb"中的"er”,但不匹配"never"中的"er"。
\cx 匹配x指示的控制字符。
例如:\cM 匹配Control-M或回車符。x的值必須在A-Z或a-z之間。如果不是這樣,則假定c就是“c”字符本身。
\f 換頁符匹配。等效于\x0c 和\cL。
\n 換行符匹配。等效于 \X0a 和\cJ。
\r 匹配一個(gè)回車符。等效于 \X0d 和 \cM。
\t 制表符匹配。 與 \x09 和 \cl等效。
\v 垂直制表符匹配。與\x0b 和 \cK等效。
\xn 匹配n,此處的n是一個(gè)十六進(jìn)制轉(zhuǎn)移碼。十六進(jìn)制轉(zhuǎn)移碼必須正好是兩位數(shù)長(zhǎng)。
例如:“\x41"匹配"A”?!癨x041"與”\x04"&"1"等效。允許在正則表達(dá)式中使用ASCII代碼。
\num 匹配num,此處的num是一個(gè)正整數(shù)。到捕獲匹配的反向引用。
例如:"(.)\1"匹配兩個(gè)連續(xù)的相同字符。
\n 標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)移碼或反向引用。
如果\n前面至少有n個(gè)捕獲子表達(dá)式,那么n是反向引用。否則,如果n是八進(jìn)制(0-7),那么n是八進(jìn)制轉(zhuǎn)移碼。
\nm 標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)移碼或反向引用。
如果\nm前面至少有nm個(gè)捕獲子表達(dá)式,那么nm是反向引用。
如果\nm前面至少有n個(gè)捕獲,則n是反向引用,后面跟有字符串m。
如果兩種前面的情況都不存在,則\nm匹配八進(jìn)制nm,其中n和m是八進(jìn)制數(shù)字(0-7)。
\nml 當(dāng)n是八進(jìn)制數(shù)(0-3),m和l是八進(jìn)制數(shù)(0-7)時(shí),匹配八進(jìn)制轉(zhuǎn)移碼nml。
\un 匹配n,其中n是以四位16進(jìn)制表示的Unicode字符。例如:\u00A9 匹配版權(quán)符號(hào)。

八、常用正則表達(dá)式

  1. 字符串是否全部是漢子: regStr=“^[\u0391-\uffe5]+$”
  2. 郵政編碼(1-9開頭的一個(gè)6位數(shù)字):regStr=“^[1-9]\\d{5}$”
  3. QQ號(hào)碼(1-9開頭的一個(gè)(5位數(shù)-10位數(shù))):regStr=“^[1-9\\d{4,9}]$”
  4. 手機(jī)號(hào)碼(13,14,15,18 開頭的11位數(shù)):regStr=“^1[3|4|5|8]\\d{9}$”;
  5. URL:regStr="^((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?$";
  6. 電子郵件(只有一個(gè)@,@前可以是a-z A-Z 0-9 _-字符,@后面是域名,比如 sohu.com或hao.org.cn)正則:^[\\w_-]+@([a-zA-Z.]+)[a-zA-Z]+$
  7. 數(shù)字(包括 +123 -345 34.8 0.9等格式):^[-+]?([1-9]\\d*|0)(\\.\\d+)?$
    == 注意:==[. ? * ] 表示匹配就是. 本身;

九、附錄(摘錄課件)

正則表達(dá)式大全

校驗(yàn)數(shù)字的表達(dá)式:

1、數(shù)字:^[0-9]*$
2、n位的數(shù)字:^\d{n}$
3、至少n位的數(shù)字:^\d{n,}$
4、m-n位的數(shù)字:^\d{m,n}$
5、零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
6、非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9{1,2}])?$
7、帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})?$
8、正數(shù)、負(fù)數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$
9、有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
10、有1~3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$

校驗(yàn)字符的表達(dá)式:
正則表達(dá)式學(xué)習(xí)筆記,正則表達(dá)式,學(xué)習(xí),筆記
特殊要求:
正則表達(dá)式學(xué)習(xí)筆記,正則表達(dá)式,學(xué)習(xí),筆記
正則表達(dá)式學(xué)習(xí)筆記,正則表達(dá)式,學(xué)習(xí),筆記

十、完結(jié)

文章來源地址http://www.zghlxwxcb.cn/news/detail-674508.html

到了這里,關(guān)于正則表達(dá)式學(xué)習(xí)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 老夫的正則表達(dá)式大成了,桀桀桀桀?。?!【Python 正則表達(dá)式筆記】

    特殊字符 .^$?+*{}[]()| 為特殊字符,若想要使用字面值,必須使用 進(jìn)行轉(zhuǎn)義 字符類 [] [] 匹配包含在方括號(hào)中的任何字符。它也可以指定范圍,例: [a-zA-Z0-9] 表示a到z,A到Z,0到9之間的任何一個(gè)字符 [u4e00-u9fa5] 匹配 Unicode 中文 [^x00-xff] 匹配雙字節(jié)字符(包括中文) 在 [] 中

    2024年02月04日
    瀏覽(21)
  • Python正則表達(dá)式之學(xué)習(xí)正則表達(dá)式三步曲

    ????????正則表達(dá)式描述了一種字符串匹配的模式,可以用來檢查一個(gè)串的有無某子串,或者做子串匹配替換,取出子串等操作。也可以說正則表達(dá)式就是字符串的匹配規(guī)則,也可以理解為是一種模糊匹配,匹配滿足正則條件的字符串。 ????????1、數(shù)據(jù)驗(yàn)證(eg:表單驗(yàn)

    2024年02月15日
    瀏覽(95)
  • 正則表達(dá)式筆記

    /你的正則表達(dá)式寫在這里/ 1?????????1出現(xiàn)0次或1次 1*????????1出現(xiàn)0次或多次 1+????????1出現(xiàn)1次或多次 1{2}????????1出現(xiàn)了2次 1{2,3}????????1出現(xiàn)了2到3次 1{2,}????????1出現(xiàn)了2次及以上 (5555){1}????????5555出現(xiàn)了1次 (dog|cat)? ? ? ? dog或者cat [a-zA-Z]? ?

    2024年02月10日
    瀏覽(14)
  • python正則表達(dá)式筆記1

    最近工作中經(jīng)常用到正則表達(dá)式處理數(shù)據(jù),慢慢發(fā)現(xiàn)了正則表達(dá)式的強(qiáng)大功能,尤其在數(shù)據(jù)處理工作中,記錄下來分享給大家。 一、 正則表達(dá)式語法介紹 正則表達(dá)式(或 RE)指定了一組與之匹配的字符串;模塊內(nèi)的函數(shù)可以檢查某個(gè)字符串是否與給定的正則表達(dá)式匹配(或

    2024年02月09日
    瀏覽(22)
  • python正則表達(dá)式筆記2

    由 \\\'\\\' 和一個(gè)字符組成的特殊序列在以下列出。 如果普通字符不是ASCII數(shù)位或者ASCII字母,那么正則樣式將匹配第二個(gè)字符。比如,$ 匹配字符 \\\'$\\\'. number 匹配數(shù)字代表的組合。每個(gè)括號(hào)是一個(gè)組合,組合從1開始編號(hào)。 比如 (.+) 1 匹配 \\\'the the\\\' 或者 \\\'55 55\\\', 但不會(huì)匹配 \\\'thethe\\\'

    2024年02月09日
    瀏覽(21)
  • 機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    為了完成本關(guān)任務(wù),你需要掌握: 在 Python 中使用正則表達(dá)式; 最基礎(chǔ)正則表達(dá)式; 正則匹配函數(shù)。 在 Python 中使用正則表達(dá)式 正可謂人生苦短,我用 Python。Python 有個(gè)特點(diǎn)就是庫(kù)非常多,自然擁有正則匹配這種常見的庫(kù),并且此庫(kù)已經(jīng)嵌入在 Python 標(biāo)準(zhǔn)庫(kù)中,使用起來非常

    2024年01月22日
    瀏覽(109)
  • QT筆記 - QRegularExpression正則表達(dá)式

    QRegularExpression是Qt框架中的正則表達(dá)式類,它支持Perl兼容的正則表達(dá)式語法。 以下是一些常用的正則表達(dá)式語法規(guī)則: 1. 字符匹配: ?? ?* 純字符串:直接寫入要匹配的字符串。例如,\\\"hello\\\"匹配字符串\\\"hello\\\"。 ?? ?* 轉(zhuǎn)義字符:使用反斜杠()來轉(zhuǎn)義特殊字符。例如,\\\"n\\\"匹配

    2024年01月23日
    瀏覽(18)
  • 正則表達(dá)式學(xué)習(xí)詳解

    正則表達(dá)式(Regular Expression),通常簡(jiǎn)稱為正則或正則表達(dá)式,是一種用于描述字符串模式的工具。它是由一系列字符和特殊字符組成的字符串,用于定義搜索模式或進(jìn)行字符串匹配、替換、提取等操作。 正則表達(dá)式提供了一種靈活、強(qiáng)大且通用的方式來處理文本。它可以用

    2024年02月13日
    瀏覽(20)
  • 正則表達(dá)式學(xué)習(xí)

    正則表達(dá)式學(xué)習(xí)

    生成正則圖 正則表達(dá)式簡(jiǎn)單、強(qiáng)大,它可以極大地提高我們工作中的文本處理效率。 現(xiàn)在,各大操作系統(tǒng)、編程語言、文本編輯器都已經(jīng)支持正則表達(dá)式 正則其實(shí)就是一種描述文本內(nèi)容組成規(guī)律的表示方式。正則表達(dá)式真正重要的是字符組、多選結(jié)構(gòu)、量詞等等這些概念

    2024年02月09日
    瀏覽(16)
  • 學(xué)習(xí)正則表達(dá)式

    學(xué)習(xí)正則表達(dá)式

    正則表達(dá)式是一個(gè)強(qiáng)大的文本匹配工具。但是,對(duì)于初學(xué)者來說,眾多的符號(hào)和規(guī)則可能讓人難以理解。其實(shí),你不需要記住所有的正則表達(dá)式語法!本文將分享一些簡(jiǎn)單而實(shí)用的技巧,幫助理解正則表達(dá)式的核心概念,輕松使用正則表達(dá)式! 正則表達(dá)式(Regular Expression,在

    2024年02月08日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包