国产精品麻豆欧美日韩ww_欧美日高清视频_亚洲精品成人久久久_久久精品国产清自在天天线

打印本文 打印本文  關(guān)閉窗口 關(guān)閉窗口  
語(yǔ)料庫(kù)基礎(chǔ):正則表達(dá)式常用代碼
作者:佚名  文章來(lái)源:本站原創(chuàng)  點(diǎn)擊數(shù)  更新時(shí)間:2012-03-29  文章錄入:admin  責(zé)任編輯:admin

 

語(yǔ)料庫(kù)基礎(chǔ):正則表達(dá)式常用代碼

 

正則表達(dá)式(Regular Expression, regex)是計(jì)算機(jī)匯編語(yǔ)言的一種技術(shù),用于匹配文本中的字符串。我們?cè)谑褂谜Z(yǔ)料庫(kù)時(shí)經(jīng)常會(huì)用到它。下面是一些最基礎(chǔ)的代碼。注意,正則表達(dá)式的代碼是區(qū)分大小寫(xiě)的。

 

常用的元字符

代碼

說(shuō)   

.

匹配除換行符以外的任意字符

\w

匹配字母、數(shù)字、下劃線或漢字

\s

匹配任意的空白符

\d

匹配數(shù)字

\b

匹配單詞的開(kāi)始或結(jié)束,即指詞的邊界

^

匹配字符串的開(kāi)始

$

匹配字符串的結(jié)束

 

常用的限定符

代碼

說(shuō)   

*

重復(fù)零次或更多次

+

重復(fù)一次或更多次

?

重復(fù)零次或一次

{n}

重復(fù)n

{n,}

重復(fù)n次或更多次

{n,m}

重復(fù)nm

*?

重復(fù)任意次,但盡可能少重復(fù)

+?

重復(fù)1次或更多次,但盡可能少重復(fù)

??

重復(fù)0次或1次,但盡可能少重復(fù)

{n,m}?

重復(fù)nm次,但盡可能少重復(fù)

{n,}?

重復(fù)n次以上,但盡可能少重復(fù)

 

常用的反義代碼

代碼

說(shuō)   

\W

匹配任意不是字母、數(shù)字、下劃線或漢字的字符

\S

匹配任意不是空白符的字符

\D

匹配任意非數(shù)字的字符

\B

匹配不是單詞開(kāi)頭或結(jié)束的位置

[^x]

匹配除了x以外的任意字符

[^aeiou]

匹配除了aeiou這幾個(gè)字母以外的任意字符

 

常用分組語(yǔ)法

分類

代碼

說(shuō)   

捕獲

(exp)

匹配exp,并捕獲文本到自動(dòng)命名的組里

(?<name>exp)

匹配exp,并捕獲文本到名稱為name的組里,也可以寫(xiě)成(?'name'exp)

(?:exp)

匹配exp,不捕獲匹配的文本,也不給此分組分配組號(hào)

零寬斷言

(?=exp)

匹配exp前面的位置

(?<=exp)

匹配exp后面的位置

(?!exp)

匹配后面跟的不是exp的位置

(?<!exp)

匹配前面不是exp的位置

注釋

(?#comment)

這種類型的分組不對(duì)正則表達(dá)式的處理產(chǎn)生任何影響,用于提供注釋讓人閱讀

 

常用的處理選項(xiàng)

   

說(shuō)   

IgnoreCase(忽略大小寫(xiě))

匹配時(shí)不區(qū)分大小寫(xiě)。

Multiline(多行模式)

更改^$的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個(gè)字符串的開(kāi)頭和結(jié)尾匹配。(在此模式下,$的精確含意是:匹配\n之前的位置以及字符串結(jié)束前的位置.)

Singleline(單行模式)

更改.的含義,使它與每一個(gè)字符匹配(包括換行符\n)。

IgnorePatternWhitespace(忽略空白)

忽略表達(dá)式中的非轉(zhuǎn)義空白并啟用由#標(biāo)記的注釋。

RightToLeft(從右向左查找)

匹配從右向左而不是從左向右進(jìn)行。

ExplicitCapture(顯式捕獲)

僅捕獲已被顯式命名的組。

ECMAScript(JavaScript兼容模式)

使表達(dá)式的行為與它在JavaScript里的行為一致。

 

其他補(bǔ)充代碼

  

說(shuō)   

\a

報(bào)警字符(打印它的效果是電腦嘀一聲)

\b

通常是單詞分界位置,但如果在字符類里使用代表退格

\t

制表符,Tab

\r

回車

\v

豎向制表符

\f

換頁(yè)符

\n

換行符

\e

Escape

\0nn

ASCII代碼中八進(jìn)制代碼為nn的字符

\xnn

ASCII代碼中十六進(jìn)制代碼為nn的字符

\unnnn

Unicode代碼中十六進(jìn)制代碼為nnnn的字符

\cN

ASCII控制字符。比如\cC代表Ctrl+C

\A

字符串開(kāi)頭(類似^,但不受處理多行選項(xiàng)的影響)

\Z

字符串結(jié)尾或行尾(不受處理多行選項(xiàng)的影響)

\z

字符串結(jié)尾(類似$,但不受處理多行選項(xiàng)的影響)

\G

當(dāng)前搜索的開(kāi)頭

\p{name}

Unicode中命名為name的字符類,例如\p{IsGreek}

(?>exp)

貪婪子表達(dá)式

(?<x>-<y>exp)

平衡組

(?im-nsx:exp)

在子表達(dá)式exp中改變處理選項(xiàng)

(?im-nsx)

為表達(dá)式后面的部分改變處理選項(xiàng)

(?(exp)yes|no)

exp當(dāng)作零寬正向先行斷言,如果在這個(gè)位置能匹配,使用yes作為此組的表達(dá)式;否則使用no

(?(exp)yes)

同上,只是使用空表達(dá)式作為no

(?(name)yes|no)

如果命名為name的組捕獲到了內(nèi)容,使用yes作為表達(dá)式;否則使用no

(?(name)yes)

同上,只是使用空表達(dá)式作為no

 

打印本文 打印本文  關(guān)閉窗口 關(guān)閉窗口