电竞比分网-中国电竞赛事及体育赛事平台

分享

preg_replace 基礎(chǔ)入門應(yīng)用

 學(xué)海無涯GL 2014-12-29
$str="as2223adfsf0s4df0sdfsdf";     
  
echo preg_replace("/0/","",$str); //去掉0字符,此 時(shí)相當(dāng)于 replace的功能, preg_replace ("/0/","A",$str);  這樣就是將0變成A的意思了     
  
echo preg_replace("/[0-9]/","",$str);   //去掉所有數(shù) 字   
  
echo preg_replace("/[a-z]/","",$str); //這樣是去掉 所有小寫字母   
  
echo preg_replace("/[A-Z]/","",$str); //這樣是去掉 所有大寫字母   
  
echo preg_replace("/[a-z,A-Z]/","",$str); //這樣是去掉 所有字母   
  
echo preg_replace("/[a-z,A-Z,0-9]/","",$str); //去掉所有字 母和數(shù)字   

經(jīng)過以 上的例子,相信大家知道,[ ] 和里面的, 有什么作用了。匹配的字符 串必須加 / / (看例子的第一個(gè)參數(shù))

繼續(xù)深一點(diǎn)的例子:
$str="acsdcs<55555555>sc<6666>sdcd";

echo preg_replace("/<.*>/","",$str); //這個(gè)是表 示去除以<開頭,以>結(jié)尾的那部份,輸出結(jié)果是:acsdcssdcd

注意:上面的 .* 是表示任何字符,也就是說不管<>包住的是什么都去掉  其中. 表示任意字符 * 表示任意個(gè)數(shù)

現(xiàn)在我們來改動(dòng)一下,如果 不想是任何個(gè)數(shù)呢?

$str="acsdcs<55555555>sc<6666>sdcd";

echo preg_replace("/<.{4}>/","",$str);    // 此時(shí)輸出: acsdcs<55555555>scsdcd 因?yàn)閧4}指定了條件:<>內(nèi)為4個(gè)字符 的才滿足條件,所以<55555555>不符合條件,沒有被替換。

注意:這時(shí)我們又學(xué)到了一個(gè)知識(shí)點(diǎn){數(shù)字} 表示指定前面的個(gè)數(shù)*就表示是任意個(gè)(0-- 無限個(gè))

表示重復(fù)次數(shù)的除了 *, {指定次數(shù)} 表示
,還有很多表達(dá) 形式:

$str="acsdcs<55555555>sc<6666>sd<>cd";   
  
echo preg_replace("/<[0-9]*>/","",$str);   //輸出 acsdcscd   
echo "<hr>";     
echo preg_replace("/<[0-9]+>/","",$str); //輸入 acsdcsscsd<>cd     

上面的例子只要是 為了 表達(dá) * 與+的區(qū)別 , * 表示重復(fù)0數(shù)或n 次,而+ 表示1次以上,即一例中<[0- 9]+ >表示<>里面至少要有一個(gè)數(shù)字才符合條件。

為什么上例中用* 和用+輸出的結(jié)果不同了吧

再來:

$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]?>/","",$str);     //輸出acsdcs<55555555>sc<6666>sdcd
看[0-9]? 這里的?表示 要是0次或1 次,超過1次又不符合條件了。

總結(jié)一下,上面我們學(xué) 會(huì)了 * + ? 和大括號(hào){}表示重復(fù)次數(shù)的方法。

{}表示次數(shù)還可以再 復(fù)雜點(diǎn):

$str="acs<22>dcs<55555>sc<333>sd<4444>cd&quo t;;
echo preg_replace("/<.{3,5}>/","",$str);    //輸出結(jié)果:acs<22>dcsscsdcd
上式表示只要是3至5次都符合條 件,<22>就不符合條件了,所以沒有被替換

再來 學(xué)多幾個(gè)正則表達(dá)式的元字符:

$str="sfsdf3333sdfsd222fsdf666sdf";
echo preg_replace ("/[0-9]*/","",$str);   //去除所有字符

可能每次都用[0-9]表示數(shù)字有點(diǎn)麻煩,所以正則用了個(gè) \d表示數(shù)字。因此上面可 以改成:

echo preg_replace("/ \d*/","",$str);

$str="sfsdf3333s dfsd222fsd f666sdf";
echo preg_replace("/ \s*/","",$str);       //輸出sfsdf3333sdfsd222fsdf666sdf 

 \s 在這里表示空格的意思


還有一些轉(zhuǎn)義字符,大家可以自己試下 :

\w 表示字母或數(shù)字或下劃線或漢字 //這個(gè)容易理解

\b 表示單詞的開頭或結(jié)束 //這個(gè)有點(diǎn)難理解,什么是單詞的開頭?



看例:
$str="applegone open";
echo preg_replace("/o*/","",$str); // 替換字符的o字符,結(jié)果會(huì)輸出:applegne pen

$str="applegone open";
echo preg_replace("/ \bo*/","",$str); // 這時(shí)是輸出applegone pen ,第一個(gè)o并沒有被替 換,為什么呢? 因?yàn)?\bo 指明了o必須是單詞的開頭才符合條件。

OK,看到這里,明白什么叫單詞的開頭了吧?

繼續(xù)

$str="applegone open go";
echo preg_replace ("/o|g/","",$str); //o|g 中間的|表示或者的意思, 此句的的意 思是替換o或者g

$str="applegone open go";
echo preg_replace("/\bo|o\b/","",$str); //輸出 applegone pen g 因?yàn)樯厦嬲f過了,\b 可以表示單詞的開頭或結(jié)尾,
因此上 例的意思是替換在單詞開頭的o或在單詞結(jié)尾的o

繼續(xù)
^ 是表示字符串開頭的意思,$表示字符串的結(jié)尾的意思
$str="applegaone an apple open go";
echo preg_replace("/ \ba/","",$str); //結(jié)果輸出:pplegaone n pple open go 替換了單詞 的開頭的a

echo preg_replace ("/^a/","",$str); //結(jié)果輸出:pplegaone an apple open go 只 替換了字符串開頭的 a

如果明白了^ , 也會(huì)明白了 $ 的意思了吧? ^ 表示字符串的開頭,$表示字符串的結(jié)尾。

時(shí)候,我們需面對(duì)一種 特殊的情況,請(qǐng)看下例:

$str="a2b333a56b33b";
echo preg_replace("/a.*b/","",$str); //本來是想替換 a2b 和a56b的,但輸出結(jié)果卻是空白

想一下,為什麼上例輸出結(jié)果 是空白呢? 因?yàn)檎麄€(gè)字符串是以a 開頭,以b結(jié)尾。所以把整個(gè)字符串都替換了。

當(dāng)一個(gè)表達(dá)式既符合短字符串的匹配,又符合長字符串的匹配,正則表 達(dá)式在默認(rèn)情況,是匹配最長的那個(gè),這種情況叫做正則表達(dá)式貪婪匹配

即匹配盡量多的字符。

加深一下理解,再試下下面幾個(gè)例:

$str="abb3";
echo preg_replace ("/a.*b/","",$str); //輸出3 , 按照貪婪匹配的原則, a.*b 匹 配的是abb,而不是ab

$str="aabb5"; //嵌套的情況,
echo preg_replace("/a.*b/","",$str); // 輸出5,按照貪 婪匹配的原則, a.*b 匹配的是aabb,而不是中間的ab

可能這時(shí)候你 會(huì)問,如果我真想替換是中間的ab字符,而不想替換aabb呢,那么你又需要學(xué)習(xí):懶惰匹 配
$str="5abb5";
echo preg_replace("/a.*? b/","",$str); //輸出5b5 , *?表示匹配任意的次,但盡量少, 所以只 替換5abb5中的ab,而不是abb

$str="5a1b22b5";
echo preg_replace("/a.*?b/","",$str); //輸出 522b5 *? 匹配最少的那個(gè) a1b,而不是 a1b22b
注意:懶惰匹配是指嵌套情況下的最少重 復(fù)。
請(qǐng)看下例:
$str="5a1ba22b5";
echo preg_replace("/a.*?b/","",$str); //輸出結(jié)果是55, a1b 和a22b 并不是嵌套關(guān)系,所以這個(gè)不能用懶惰匹配來解釋,此例可以看作是替換了a1b和a22b。


總結(jié)一下:貪婪匹配匹配盡量多的字符,懶惰匹配匹配盡量 少的字符

懶惰匹配還有其它的表達(dá)方式:

*? 重復(fù)任意次,但盡可能少重復(fù)
+? 重復(fù)1次以上,但盡可能少重復(fù)
重復(fù)0次或1次,但盡量少重復(fù)
{n,m}? 重復(fù)n到m次,但盡量少重復(fù)
{n,}? 重復(fù)n次以上,但盡量少重

懶惰匹配還有個(gè)特殊的 情況:
$str="aabab";
echo preg_replace("/a.*? b/","",$str); //此時(shí)輸出的結(jié)果是空白
為什么上例中a.*?b 替換了整個(gè)字符串? 其實(shí),并不是因?yàn)樘鎿Q了整個(gè)字符串,而是 替換了aab 和 ab

具體實(shí)例:

去掉所有HTML標(biāo)識(shí)
假 如你有一份HTML

<html>
<head>
<title></title>
</head>
<body>
<font color="#ff0000">PHP正則表達(dá)式 </font>
<a class='a1' href="">Click Here</a>

</body>
</html>

當(dāng)你用PHP的 file_get_contents 把它全部讀入了 一個(gè)字符串 $str之 后。

如果你只需要這份文件里面的文字,不要其它HTML標(biāo)記。如何 去掉呢?
先分析一下,不管什么HTML標(biāo)記,都有個(gè)特點(diǎn):以<開頭,以> 結(jié)尾,我們只需要去掉以<開頭,以> 結(jié)尾的字符即可
可能你會(huì)想到用以 下的表達(dá)式
$str= preg_replace ("/<.*>/","",$str); // 這樣可不行。為什么?試驗(yàn)一下, 看下例:
$str="111<div>333</div>88";
echo preg_replace("/<.*>/","",$str); //結(jié)果輸出 11188, 它把333也去掉了,我們只想去掉<div></div>標(biāo)記,但根據(jù)貪婪匹配 的原理,這個(gè)表達(dá)式會(huì)去掉:<div>333</div>
那么,我們改為使 用懶惰匹配
$str="111<div>333</div>88";
echo preg_replace("/<.*?>/","",$str); //結(jié)果輸 出:11133388 正是我們想要的結(jié)果

有時(shí)候,HTML標(biāo)記常會(huì)出現(xiàn)嵌套 的現(xiàn)象:

$str="111<div>3<div>444</div>33</div>88" ;;
echo preg_replace("/<.*?>/","",$str); // 結(jié)果輸出:11134443388 也是我們想要的結(jié)果

去掉超級(jí)鏈接

如果我們并不想去掉超級(jí)鏈接,而是想去掉超級(jí)鏈接標(biāo)識(shí)呢?

先分析一下超鏈接標(biāo)識(shí)的特點(diǎn), <a href="aa.php">Click Herer</a>
還可能有 <a class="a1" href="aa.php">Click Here</a> 或 <a class="a1" href="aa.php" target=_blank >Click Here</a>
還可能有大小寫不同的情況 <A HREF="aa.php">Click Herer</a>
不管什么情況, 肯定是 <a 開頭 里面含有 href字眼

$str="111<a href=''></a>88";
echo preg_replace("/<a href=''>/i","",$str); //這樣輸出的結(jié)果是111</a>88 ,而 沒有去掉</a>
改進(jìn)一下:
$str="111<a href=''></a>88";
echo preg_replace("/<a href=''>|<\/a>/i","",$str); // </a>要用 <\/a>表示加斜杠表轉(zhuǎn)義,否則會(huì)出錯(cuò)的, 加i是為了不區(qū)分大小寫
上 例中輸出了11188 ,是正確去掉超鏈接標(biāo)識(shí)了,但上例的表達(dá)式壯健性太差了,稍有變化 ,就會(huì)出錯(cuò)。
稍變一下:
$str="111<a href=''></a>88"; // 如果href 前面多幾個(gè)空格
echo preg_replace("/<a href=''>|<\/a>/i","",$str); //輸出111<a href=''>88, 這樣就出錯(cuò)了。
因此我們?cè)賹⑵涓倪M(jìn)一下:
$str="111<a href=''></a>88";
echo preg_replace("/<a href=''>|<\/a>/i","",$str);
作業(yè)題:
下面是一條壯健性比較好的替換超鏈接代碼的表達(dá)式, 好好分析一下
echo preg_replace("/<a\s+href=[^>]*>|<\/[^a]*a[^>] *>/i","",$str);

------------------------- ---
PS:上面去掉超鏈接的,只是學(xué)習(xí)作用,在實(shí)際上,用起來,還是不好用, 我再找了兩個(gè),還可以用的

echo preg_replace("/<a [^>]*?>(.*)<\/a>/si","\\1",$str);
echo preg_replace("#<a .+>(.*) <\/a>#iU","\\1",$str);

這兩個(gè),就不 會(huì)出錯(cuò)。



PHP 正則表達(dá)式

正則字符正則解釋
\將下一個(gè)字符標(biāo)記為一個(gè)特殊字符、或一個(gè)原義字符、或一個(gè)向后引用、或一個(gè)八進(jìn)制轉(zhuǎn)義符。例如,“\n”匹配字符“n”?!癨\n”匹配一個(gè)換行符。序列“\\”匹配“\”而“\(”則匹配“(”。
^匹配輸入字符串的開始位置。如果設(shè)置了RegExp對(duì)象的Multiline屬性,^也匹配“\n”或“\r”之后的位置。
$匹配輸入字符串的結(jié)束位置。如果設(shè)置了RegExp對(duì)象的Multiline屬性,$也匹配“\n”或“\r”之前的位置。
*匹配前面的子表達(dá)式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等價(jià)于{0,}。
+匹配前面的子表達(dá)式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等價(jià)于{1,}。
匹配前面的子表達(dá)式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等價(jià)于{0,1}。
{n}n是一個(gè)非負(fù)整數(shù)。匹配確定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個(gè)o。
{n,}n是一個(gè)非負(fù)整數(shù)。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o?!皁{1,}”等價(jià)于“o+”?!皁{0,}”則等價(jià)于“o*”。
{n,m}m和n均為非負(fù)整數(shù),其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”將匹配“fooooood”中的前三個(gè)o?!皁{0,1}”等價(jià)于“o?”。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格。
當(dāng)該字符緊跟在任何一個(gè)其他限制符(*,+,?,{n},{n,},{n,m})后面時(shí),匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對(duì)于字符串“oooo”,“o?”將匹配單個(gè)“o”,而“o+”將匹配所有“o”。
.點(diǎn)匹配除“\n”之外的任何單個(gè)字符。要匹配包括“\n”在內(nèi)的任何字符,請(qǐng)使用像“[\s\S]”的模式。
(pattern)匹配pattern并獲取這一匹配。所獲取的匹配可以從產(chǎn)生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中則使用$0…$9屬性。要匹配圓括號(hào)字符,請(qǐng)使用“\(”或“\)”。
(?:pattern)匹配pattern但不獲取匹配結(jié)果,也就是說這是一個(gè)非獲取匹配,不進(jìn)行存儲(chǔ)供以后使用。這在使用或字符“(|)”來組合一個(gè)模式的各個(gè)部分是很有用。例如“industr(?:y|ies)”就是一個(gè)比“industry|industries”更簡略的表達(dá)式。
(?=pattern)正向肯定預(yù)查,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預(yù)查不消耗字符,也就是說,在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始。
(?!pattern)正向否定預(yù)查,在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern)反向肯定預(yù)查,與正向肯定預(yù)查類似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern)反向否定預(yù)查,與正向否定預(yù)查類似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
x|y匹配x或y。例如,“z|food”能匹配“z”或“food”?!?z|f)ood”則匹配“zood”或“food”。
[xyz]字符集合。匹配所包含的任意一個(gè)字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]負(fù)值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
[a-z]字符范圍。匹配指定范圍內(nèi)的任意字符。例如,“[a-z]”可以匹配“a”到“z”范圍內(nèi)的任意小寫字母字符。注意:只有連字符在字符組內(nèi)部時(shí),并且出兩個(gè)字符之間時(shí),才能表示字符的范圍; 如果出字符組的開頭,則只能表示連字符本身.
[^a-z]負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范圍內(nèi)的任意字符。
\b匹配一個(gè)單詞邊界,也就是指單詞和空格間的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
\B匹配非單詞邊界?!癳r\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx匹配由x指明的控制字符。例如,\cM匹配一個(gè)Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個(gè)原義的“c”字符。
\d匹配一個(gè)數(shù)字字符。等價(jià)于[0-9]。
\D匹配一個(gè)非數(shù)字字符。等價(jià)于[^0-9]。
\f匹配一個(gè)換頁符。等價(jià)于\x0c和\cL。
\n匹配一個(gè)換行符。等價(jià)于\x0a和\cJ。
\r匹配一個(gè)回車符。等價(jià)于\x0d和\cM。
\s匹配任何空白字符,包括 空格、換行符、制表符、換頁符、中文全角空格等等。等價(jià)于[ \f\r\n\t\v]。
\S匹配任何非空白字符。等價(jià)于[^ \f\r\n\t\v]。
\t匹配一個(gè)制表符。等價(jià)于\x09和\cI。
\v匹配一個(gè)垂直制表符。等價(jià)于\x0b和\cK。
\w匹配包括下劃線的任何單詞字符。等價(jià)于“[A-Za-z0-9_]”。
\W匹配任何非單詞字符。等價(jià)于“[^A-Za-z0-9_]”。
\xn匹配n,其中n為十六進(jìn)制轉(zhuǎn)義值。十六進(jìn)制轉(zhuǎn)義值必須為確定的兩個(gè)數(shù)字長。例如,“\x41”匹配“A”?!癨x041”則等價(jià)于“\x04&1”。正則表達(dá)式中可以使用ASCII編碼。
\num匹配num,其中num是一個(gè)正整數(shù)。對(duì)所獲取的匹配的引用。例如,“(.)\1”匹配兩個(gè)連續(xù)的相同字符。
\n標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果\n之前至少n個(gè)獲取的子表達(dá)式,則n為向后引用。否則,如果n為八進(jìn)制數(shù)字(0-7),則n為一個(gè)八進(jìn)制轉(zhuǎn)義值。
\nm標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果\nm之前至少有nm個(gè)獲得子表達(dá)式,則nm為向后引用。如果\nm之前至少有n個(gè)獲取,則n為一個(gè)后跟文字m的向后引用。如果前面的條件都不滿足,若n和m均為八進(jìn)制數(shù)字(0-7),則\nm將匹配八進(jìn)制轉(zhuǎn)義值nm。
\nml如果n為八進(jìn)制數(shù)字(0-7),且m和l均為八進(jìn)制數(shù)字(0-7),則匹配八進(jìn)制轉(zhuǎn)義值nml。
\un匹配n,其中n是一個(gè)用四個(gè)十六進(jìn)制數(shù)字表示的Unicode字符。例如,\u00A9匹配版權(quán)符號(hào)(?)。

上表是正則表達(dá)式比較全面的解釋,而商標(biāo)中的正則字符都有特殊含義,已經(jīng)不再代表原字符含義。如正則表達(dá)式中“+”不代表加號(hào),而是代表匹配一次或多次。而如果想要讓“+”表示加號(hào),則需要在其前面加上“\”轉(zhuǎn)義,也就是用“\+”表示加號(hào)。


三個(gè)常用的知識(shí)點(diǎn):

1.惰性匹配:正則引擎默認(rèn)是貪婪的,若要最少重復(fù)的話,需要用到惰性匹配符 “

懶惰限定符

代碼/語法

說明

*?重復(fù)任意次,但盡可能少重復(fù)
+?重復(fù)1次或更多次,但盡可能少重復(fù)
重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}?重復(fù)n到m次,但盡可能少重復(fù)
{n,}?重復(fù)n次以上,但盡可能少重復(fù)

 

參考:http:///tutorials/regex/regex.htm#greedyandlazy

 

2.不捕獲性匹配: 一方面不占用反向應(yīng)用組號(hào),另一方面提高了匹配效率

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

 

參考:http:///tutorials/regex/regex.htm#backreference

 

3.PHP正則表達(dá)式模式修飾符詳解

模式修正符號(hào)功能描述
i在和正則匹配是不區(qū)分大小寫
m將字符串視為多行。默認(rèn)的正則開始“^”和結(jié)束“$”將目標(biāo)字條串作為一單一的一“行”字符(甚至其中包括換行符也是如此)。如果在修飾符中加上“m”,那么開始和結(jié)束將會(huì)指點(diǎn)字符串的每一行的開頭就是“^”結(jié)束就是“$”。
s如果設(shè)定了這個(gè)修正符,那么,被匹配的字符串將視為一行來看,包括換行符,換行符將被視為普通字符串。
x忽略空白,除非進(jìn)行轉(zhuǎn)義的不被忽略。
e只用在preg_replace()函數(shù)中,在替換字符串中逆向引用做正常的替換,將其(即“替換字符串”)作為PHP代碼求值,并用其結(jié)果來替換所搜索的字符串。
A如果使用這個(gè)修飾符,那么表達(dá)式必須是匹配的字符串中的開頭部分。比如說”/a/A”匹配”abcd”。
D模式中的$字符權(quán)匹配目標(biāo)字符的結(jié)尾。沒有此選項(xiàng)時(shí),如果最后一個(gè)字符是換行符的話,美元符號(hào)也會(huì)匹配此字符之前。如果設(shè)定了修正符m則忽略此項(xiàng)。
E與”m”相反,如果使用這個(gè)修飾符,那么”$”將匹配絕對(duì)字符串的結(jié)尾,而不是換行符前面,默認(rèn)就打開了這個(gè)模式。
U貪婪模式,和問號(hào)的作用差不多,最大限度的匹配就是貪婪模式。
 

 

 


 

 

常用的元字符
代碼說明
.匹配除換行符(\r\n,\r,\n)以外的任意字符
\w匹配字母或數(shù)字或下劃線或漢字
\s匹配任意的空白符,包括空格、制表符(Tab)、換行符、中文全角空格
\d匹配數(shù)字
\b匹配單詞的開始或結(jié)束
^匹配字符串的開始
$匹配字符串的結(jié)束
 

 


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多