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

首頁 > 編程 > regex > 正文

正則表達式 學習資料整理

2020-01-20 22:22:12
字體:
來源:轉載
供稿:網友

常用正則表達式 整理篇
//www.49028c.com/article/17355.htm

正則表達式高級學習技巧
//www.49028c.com/article/9229.htm

1.正則表達式簡介

正則表達式(Regular expression,簡寫為Regexes)是一種用來操作和檢驗字符串數據的強大工具。它相當與一串特殊的字符,用它可以轉換成算法,對文本進行匹配等操作。

       事實上正則表達式有其自身的一套語法,這種語法對于初學者來說顯得有些晦澀難懂。尤其是其構造比較困難,稱為很多入門者的障礙。但當掌握后卻可以輕易的解決以前不容易解決的很多文本類問題,如驗證提取等。

其常用場合有如下三種:

Ø        測試字符串的某個模式。例如,可以對一個輸入字符串進行測試,看在該字符串是否存在一個電話號碼模式或一個信用卡號碼模式。這稱為數據有效性驗證。

Ø        替換文本??梢栽谖臋n中使用一個正則表達式來標識特定文字,然后可以全部將其刪除,或者替換為別的文字。

Ø        根據模式匹配從字符串中提取一個子字符串??梢杂脕碓谖谋净蜉斎胱侄沃胁檎姨囟ㄎ淖帧?/SPAN>      

2.正則表達式基礎語法

2.1匹配不同類型的字符

 

字符類

匹配的字符

/d

匹配一個數字字符。等價于 [0-9]。

/D

匹配一個非數字字符。等價于 [^0-9]。

/w

匹配包括下劃線的任何單詞字符。等價于'[A-Za-z0-9_]'。

/W

匹配任何非單詞字符。等價于 '[^A-Za-z0-9_]'。

/s

匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ /f/n/r/t/v]。

/S

匹配任何非空白字符。等價于 [^ /f/n/r/t/v]。

.(點號)

任一字符

[...]

括號中的任一字符

[^…]

非括號中的任一字符

2.2定位控制字符

^

其后的模式必須在字符串的開始處,如果是多行則在任一行的開始C#需要設定Multiline標志

$

前面的模式必須在一行的末尾,如果是多行,則在任意行的末尾

/A

前面的模式必須在字符串的開始處;多行標志被忽略

/z

前面的模式必須在字符串的末尾處,多行標志被忽略

/Z

前面的模式必須位于字符串的末尾或位于換行符前

/b

匹配一個單詞字符的開始,單詞字符是[a-zA-Z0-9]中的一位

/B

匹配一個非單詞邊界的位置, 不在一個單詞的開始

2.3指定重復字符

{n}

匹配前面的字符n

{n,}

匹配前面的字符最少n

{n,m}

匹配前面的字符nm

?

匹配前面的字符0次或1

+

匹配前面的字符至少1

*

匹配前面的字符至少0

2.4特殊控制類

|

指定字符替換,即該位置可以是|兩邊的任一個表達式

2.5 特殊字符轉義序列

//

匹配”/”

/.

匹配“.

/*

匹配“*

/(

匹配“(”

/)

匹配”)”

/?

匹配“?“

/+

匹配“+

/|

匹配“|

/{

匹配“{

/}

匹配“}

/^

匹配“^

/$

匹配“$

/n

匹配換行符

/r

匹配回車

/t

匹配Tab

/v

匹配垂直制表符

/f

匹配換頁符

/nnn

匹配一個三位八進制數指定的ASCII字符,如/103匹配C

/xnn

匹配一個二位16進制數指定的ASCII字符,例如/x43匹配C

/unnnn

匹配一個416進制數指定的Unicode字符

/cV

匹配一個控制字符,(如復制Ctrl+C

2.6正則表達式分組、替換、反向引用等高級應用

以上只是正則表達式的基礎部分,從這里開始才算真正開始正則表達式之旅。

²       分組

分組技術可以匹配在一個組中的所有字符,用()來表示,是下面兩個技術的基礎所在?!埃ǎ坝址Q捕獲符號。

1.    捕獲:()

例子:ABC1EDF2UU

匹配組表達式:([A-Z]{3})/d  --匹配3個連續大寫字母和一個數字

匹配結果:1.ABC1,2.EDF2

如果用C#中的group,則為ABC,EDF。因為group搜集的是匹配組的內容。
2.
非捕獲(?:)

使用了非捕獲就說明該()中的內容將不作為捕獲的組返回,而和其它表達式共同構成匹配項返回。也就是捕獲組將不存在。

例:1AF3EDC

匹配表達式:(?:/d|[A-Z]/w  --匹配一個數字或字母加一個任意的字符。

匹配結果:1.1A 2.F3 3.ED

沒有組被捕獲

2.    通過名稱捕獲(?<name>

定義了名稱捕獲的組可以在反向匹配中運用名稱進行反向引用而不需要再使用數字進行反向捕獲。注意組名區分大小寫!

²       替換

替換,顧名思義,是將匹配的字符替換成其他指定的字符形式。這個功能是在分組的基礎上的(當然或許可以單獨存在,但是那樣匹配的功能顯然不夠強大)。在這里有一個技巧是使用附加的匹配字符控制匹配內容。

$group

group指定的組號進行替換

${name}

替換由<?name>匹配的最后一個子串

$$

替換字符$

$&

替換整個的匹配

$+

替換最后捕獲的組

$

替換整個輸入的字符串

 

²       反向引用

反向匹配可以引用前面組中的匹配形式?!?SPAN lang=EN-US>/匹配組的數字表示(1為基數)“或者”/k<groupname>

²       高級組

1.    正聲明(?=

規定了括號中的模式必須出現在聲明的右側。模式將不構成匹配的一部分。

2.    負聲明(?!

規定了括號中的模式不能出現在聲明的右側,模式將不構成匹配的一部分。

3.    反向正聲明(?<=

規定了括號中的模式必須出現在聲明的左側,模式將不構成匹配的一部分。

4.    反向負聲明(?<!

規定了括號中的模式必須出現在聲明的左側。模式不構成匹配的一部分。

5.    非回溯(?>

防止了正則表達式引擎搜索失敗時回溯,這稱之為貪婪的子表達式。

如輸入字符串:He  was very trusting.

正則表達式:.*ing將匹配trusting但是如果加入(?>ing則不能完成匹配。

非回溯組也是非捕獲組。他對于提高正則表達式的效率很有效。

如匹配一個www.****.com的網址。使用www/.(.*)/.com顯然要比www/.([^.]*)/.com效率要低的多,因為前者必須使用組中的回溯操作,回溯是很艱難的過程,所以當使用非回溯的正則表達式時時可以顯著提高正則表達式的效率的。

其實正則表達式是只注重匹配結果的,所以會努力去匹配所存在的字符串。這就是它的貪婪性所在。(這點其實理解的不是太深)。

注意以上這些(1-5)都不能夠用于反向引用,因為以上聲明將不作為匹配的一部分。

2.7在正則表達式中做決策

高級決策的兩種寫法:

1=>(?(expressionyes|no)

2=>(?(?=expression)yes|no)

這兩種方式中的的expression匹配則后面進行匹配yes,否則匹配no。

需要注意的一點是yes測試和決策測試是在同一個起點里進行的。

如以下字符串:77-77A 69-AA 57-B

匹配表達式為:(/d7)?-(?(1)/d/d[A-Z]|[A-Z][A-Z])

匹配結果為:

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

日韩av一区在线观看| 久久久精品国产一区二区| 国产精品久久久久久久午夜| 亚洲精品国产品国语在线| 亚洲男人天堂手机在线| 日韩欧美在线观看| 日韩精品中文字幕久久臀| 亚洲欧美国产高清va在线播| 美女扒开尿口让男人操亚洲视频网站| 久久手机免费视频| 国产成人精品免高潮费视频| 国产精品高潮呻吟视频| 亚洲久久久久久久久久| 91视频九色网站| 97超碰色婷婷| 91国产在线精品| 亚洲已满18点击进入在线看片| 国产精品久久久久久亚洲影视| 中文字幕久久久av一区| 美日韩丰满少妇在线观看| 亚洲欧美中文另类| 欧美激情xxxx性bbbb| 91中文字幕在线观看| 国产精选久久久久久| 欧美精品videos另类日本| 国产精品高清网站| 久久中文字幕国产| 色综合五月天导航| 久久久久久国产免费| 91av视频在线免费观看| 欧美亚洲国产视频| 在线日韩精品视频| 亚洲欧美国产精品| 亚洲日韩中文字幕在线播放| 亚洲欧美制服丝袜| 久久九九免费视频| 在线观看欧美日韩| 久久频这里精品99香蕉| 欧美日韩第一页| 91国自产精品中文字幕亚洲| 国产日韩在线亚洲字幕中文| 亚洲色图第三页| 久久精品在线视频| 国产精品嫩草影院久久久| 91av在线播放视频| 中日韩美女免费视频网站在线观看| 成人免费看片视频| 国产视频久久久久久久| 日韩av在线资源| 欧美性生交大片免费| 欧美三级免费观看| 亚洲第一区第二区| 成人午夜激情免费视频| 国产v综合ⅴ日韩v欧美大片| 国产亚洲一区精品| 亚洲综合日韩在线| 日韩亚洲国产中文字幕| 亚洲国产精品久久久久秋霞蜜臀| 亚洲变态欧美另类捆绑| 国产精品中文久久久久久久| 97高清免费视频| 亚洲国内精品在线| 国产成人一区二区三区| 亚洲欧美中文字幕在线一区| 中文字幕亚洲一区二区三区| 九九综合九九综合| 97免费在线视频| 久久影院在线观看| 亚洲一区二区久久久| 97超碰蝌蚪网人人做人人爽| 中文字幕欧美精品日韩中文字幕| www.亚洲一区| 日韩av在线免播放器| 亚洲精品自在久久| 欧美在线免费观看| 国产精品一区二区久久精品| 国产精品欧美一区二区三区奶水| 亚洲 日韩 国产第一| 亚洲精品久久久久中文字幕欢迎你| 精品福利一区二区| 日韩视频在线一区| 中文字幕日韩欧美在线视频| 亚洲午夜女主播在线直播| 亚洲最大福利视频| 久久国产精品99国产精| 神马国产精品影院av| 热99精品只有里视频精品| 久久精视频免费在线久久完整在线看| 亚洲色图35p| 国模私拍一区二区三区| 亚洲在线视频福利| 久久久久久久国产| 欧美成人手机在线| 韩国日本不卡在线| 国产精品爽爽爽爽爽爽在线观看| 日韩精品中文字幕在线播放| 国产日产欧美a一级在线| 亚洲小视频在线| 一夜七次郎国产精品亚洲| www.美女亚洲精品| 亚洲区bt下载| 色综合色综合网色综合| 日韩电影免费观看在线观看| 欧美亚洲国产成人精品| 亚洲精品资源美女情侣酒店| 欧美专区中文字幕| 日韩电影免费在线观看中文字幕| 国产精品久久久999| 日韩免费看的电影电视剧大全| 国产精品第100页| 成人中心免费视频| 国产91亚洲精品| 欧美日韩一区二区三区在线免费观看| 国产亚洲精品美女久久久久| 国产视频综合在线| 精品福利免费观看| 日韩最新在线视频| 日韩av在线免费播放| 国产一区二区丝袜高跟鞋图片| 亚洲欧美日韩网| 国产69精品久久久| 午夜免费久久久久| 欧美区二区三区| 欧美激情在线播放| 亚洲成人动漫在线播放| 日本高清久久天堂| 欧美在线视频在线播放完整版免费观看| 国产精品丝袜高跟| 日韩在线观看网址| 国产精品久久久久久亚洲影视| 成人网页在线免费观看| 大胆欧美人体视频| 国产精品极品美女在线观看免费| 久久国产精品久久久| 欧美日韩另类字幕中文| 黄色一区二区在线观看| 欧美极品欧美精品欧美视频| 欧美极品欧美精品欧美视频| 欧美日韩在线视频首页| 亚洲最新在线视频| 欧美日韩精品中文字幕| 亚洲成人激情视频| 精品毛片三在线观看| 91免费视频网站| 亚洲国产一区二区三区四区| 日韩精品中文字幕视频在线| 久久久免费观看| 日韩在线视频导航| 国产精品亚洲自拍| 38少妇精品导航| 日韩在线观看免费| 欧美国产激情18| 国产精自产拍久久久久久| 国产69精品99久久久久久宅男| 黑人巨大精品欧美一区免费视频| 伊人久久五月天| 亚洲人成在线电影| 精品人伦一区二区三区蜜桃网站| 国产成人avxxxxx在线看| 中文字幕亚洲一区| 日韩高清人体午夜| 国产成人免费91av在线| 丝袜亚洲另类欧美重口| 久久夜色撩人精品|