正則表達(dá)式

正則表達(dá)式是Perl內(nèi)嵌的一個(gè)微型編程語言

使用簡(jiǎn)單模式

匹配對(duì)象是$_內(nèi)容,那模式本身就是一串簡(jiǎn)單的字符串序列,把模式寫在/中.

$_ = "asda";
if(/asad/)
{...}

Unicode屬性

Unicode每個(gè)字符除了字節(jié)組合外,還有屬性信息,除了匹配字符本身,還可根據(jù)字符屬性來匹配。若要匹配某項(xiàng)屬性,只需把屬性名放入\p{PROPERTY},例如:

if(/\p{Space}/)
{...}

匹配空白符。

if(/\p{Digit}/)
{...}

匹配數(shù)字
將p改為大寫表示不匹配

if(/\P{Space}/)
{...}

不匹配空白符

元字符

.可以匹配除了換行符之外任意字符。如果想只是匹配.本身,要加上反斜線轉(zhuǎn)義。

簡(jiǎn)單量詞

  • *能匹配前一個(gè)字符零次或者無數(shù)次。
    例如
"fred\t*ban"

那么能匹配在fred和ban之間包含0次或者無數(shù)次制表符的字符串。

.*能匹配任意字符0次到無限次

  • +匹配前一個(gè)條目一次以上。

  • ?匹配前一個(gè)條目只出現(xiàn)一次或者不出現(xiàn)

模式分組

  • ()的作用是對(duì)字符串分組,使多個(gè)條目合并為一個(gè)條目。
/fred+/
#可以匹配freddddd
/(fred)+/
#可以匹配fredfredfred
/(fred)*/
#可以匹配hello,world

捕獲組

通過反向引用來引用圓括號(hào)中的模式所匹配的文字。反向引用是在反斜線后面接上數(shù)字編號(hào)

if(/(.)\1/)
{...}
#匹配連續(xù)重復(fù)出現(xiàn)的兩個(gè)字符"aa"

if(/y(....)d\2/)
{...}
#匹配yabccdabccabcc

在Perl5.10后可用\g{N}表示新的反向引用寫法。N表示要反向引用的組號(hào)。

if(/(.)\g{1}/)
{...}

擇一匹配

| 的意思是匹配左邊的內(nèi)容失敗了可以匹配右邊的內(nèi)容

/fred(|\t)+barney/
#(|\t)可能匹配空格或者制表符
這就可以匹配兩個(gè)名字之間至少要有一個(gè)空格或制表符

字符集

指一組可能出現(xiàn)的字符,通常寫在([])表示匹配字符集中出現(xiàn)的單個(gè)字符。

[a-zA-Z]

字符集的簡(jiǎn)寫

表示任意一個(gè)數(shù)字的字符集簡(jiǎn)寫是\d

/[/d]/

表示任意一個(gè)空白符的字符集是\s

/[\s]/ == /[\f\t\n\r]/

\h只匹配水平空白符,\v只匹配垂直空白符
\w匹配單詞字符

反義簡(jiǎn)寫

[^\d] == \D
#表示否定意義
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文譯自 制作正則引擎的作者 Jan Goyvaerts 為工具 RegexBuddy 寫的教程版權(quán)歸原作者所有注...
    極客圈閱讀 3,414評(píng)論 0 25
  • 正則表達(dá)式學(xué)習(xí)筆記 一篇記錄了學(xué)習(xí)正則表達(dá)式的筆記。 1. 轉(zhuǎn)義字符 在 HTMl 中轉(zhuǎn)義字符以 & 符號(hào)開頭,分...
    heyi_let閱讀 484評(píng)論 0 0
  • 簡(jiǎn)介 正則表達(dá)式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文...
    我為峰2014閱讀 555評(píng)論 0 2
  • \ :將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。例如,"n"匹配字符"n"。"\n"匹配換行符。序列...
    小沙鷹168閱讀 631評(píng)論 0 1
  • 正則表達(dá)式簡(jiǎn)介 Perl最重要的一大特色就是對(duì)正則表達(dá)式的強(qiáng)力支持,這些支持提供了強(qiáng)大且靈活的字符串處理能力。正則...
    櫻雨樓閱讀 1,095評(píng)論 0 1

友情鏈接更多精彩內(nèi)容