PHP和MySQL開發(fā)—第四章 字符串操作與正則表達(dá)式

第四章 字符串操作與正則表達(dá)式

1.mail()函數(shù)

  • bool mail (string to, string subject, string message,string[additional_headers[, string additional_parameters]]);
    • string to、string subject、string message這三個(gè)參數(shù)是必需的,分別代表發(fā)送郵件的目的地址、主題行和消息內(nèi)容。
    • addational_headers 的第四個(gè)參數(shù)可以用來發(fā)送任何額外的、有效的郵件頭。
    • addational_parameters的第五個(gè)參數(shù)可以向任何經(jīng)過配置用來發(fā)送電子郵件的程序傳遞參數(shù)。

2.字符串的格式化

  • 整理字符串
    • 整理字符串首先要清理字符串中多余的空格。為了將字符串存入文件或數(shù)據(jù)庫中,或者將其與別的字符串進(jìn)行比較,就是非常需要的一步。
    • trim()函數(shù)、ltrim()函數(shù)和rtrim()函數(shù)(rtrim別名又叫chop)
      • 該函數(shù)可以除去字符串開始位置和結(jié)束位置的空格,并將結(jié)果字符串返回。
      • 衍生函數(shù):ltrim()和rtrim()函數(shù),他們兩個(gè)的使用和trim()函數(shù)是一樣的,區(qū)別在于trim()是除去字符串開始和結(jié)束位置的空格;而ltrim()函數(shù)是去除開始(左邊)位置的空格;rtrim()是去除結(jié)束(右邊)為止的空格。
      • 除去的字符:
        • 默認(rèn)的情況下,除去的字符是換行符和回車符(\n 和 \r),水平和垂直制表符(\t 和\x0B)、字符串結(jié)束符(\0)和空格。
        • 除此之外,還可以通過設(shè)置trim()函數(shù)的第二個(gè)參數(shù)來提供要過濾的特殊字符。
  • 格式化字符串并顯示
    • nl2br()函數(shù)
      • 該函數(shù)是使用HTML格式化,其將字符串作為輸入?yún)?shù),用XHTML中的<br />標(biāo)記代替字符串中的換行符。

      • 該函數(shù)在字符串中的每個(gè)新行(\n)之前插入HTML換行符(<br><br \>)

      • 因?yàn)?code><br />是html中的寫法,在PHP中無法用來劃分長字符串;如果想將一個(gè)長字符串顯示在瀏覽器中的話,使用nl2br會更有效。

      • 舉例來說:

      • <p><?php echo nl2br($mailcontent);?></p><p><?php echo "Customer name:".$name."<br />"."Customer email:".$email."<br />"."Customer coments:".$feedback."<br />";?></p> 實(shí)際效果大致相同。

      • echo nl2br($mailcontent);效果圖
      • echo "Customer name:".$name效果圖
  • printf()函數(shù)
    -void printf(string format [, mixed args...]);
    • 該函數(shù)是將一個(gè)格式化的字符串輸出的瀏覽器中。
    • 該函數(shù)的第一個(gè)參數(shù)都是字符串格式,它使用格式代碼而不是變量來描述輸出字符串的基本形狀。
    • 其他參數(shù)是用來替換格式字符串的變量。
    • 該函數(shù)的優(yōu)點(diǎn)在于,可以使用更有用的轉(zhuǎn)換說明來制定$total為一個(gè)浮點(diǎn)數(shù)。
      • 例如:printf("Total amount of order is %.2f", $total);
      • 上述代碼打印出的$total中12.4將改為12.40。
    • echo "Total amount of order is $total.";printf("Total amount of order is %s.",$total); 的結(jié)果相同。
      • 格式化字符串的%s是轉(zhuǎn)換說明。
      • 轉(zhuǎn)換格式
        • %['padding_character][-][ width][.precision]type
        • 所有轉(zhuǎn)換格式都遵循同意的格式。
        • 所有轉(zhuǎn)換說明都以%開始。如果想打印一個(gè)%符號,必須使用%%。
        • 參數(shù)padding_character是可選的,其將被用來填充變量直至所指定的寬度;其默認(rèn)的填充字符是一個(gè)空格,如果指定了一個(gè)空格或0,就不需要'作為前綴了。
        • -也是可選的,它指明該域中的數(shù)據(jù)應(yīng)該左對齊,如果不添加,則默認(rèn)是右對齊。
        • width參數(shù)告訴printf()函數(shù)在這里為將被替換的變量留下多少空間(按字符計(jì)算)。
        • precision便是必須是以一個(gè)小數(shù)點(diǎn)開始。簡單來說就是表明小數(shù)點(diǎn)后面要保留(顯示)的位數(shù)。
        • 轉(zhuǎn)換說明的類型碼
          • %:文字百分比字符。不需要參數(shù)
          • b:參數(shù)被視為整數(shù),并顯示為二進(jìn)制數(shù)
          • c:整數(shù),并作為字符輸出(ASCII值的字符)
          • d:整數(shù),并作為小數(shù)輸出
          • f:雙精度數(shù),并作為浮點(diǎn)數(shù)輸出
          • e:科學(xué)計(jì)數(shù)法(1.2e+2).
          • o:整數(shù),并作為八進(jìn)制數(shù)輸出
          • s:字符串,并作為字符串輸出
          • u:整數(shù),并作為非指定小數(shù)輸出
          • x:整數(shù),并作為帶有小寫字母a~f的十六進(jìn)制數(shù)輸出
          • X:整數(shù),并作為帶有大寫字母A~F的十六進(jìn)制數(shù)輸出
    • 使用帶序號的參數(shù)方式來調(diào)用參數(shù)。
      • printf("Total amount of order is %2\$.2f(with shipping %1\$.2f)",$total_shipping,$total);
        • 上述代碼中,%2\$.2f代表著使用列表中的第二個(gè)參數(shù)替換。
        • 在%符號后添加參數(shù)的位置,并且以$符號位結(jié)束,這樣就意味著參數(shù)的順序并不一定要與轉(zhuǎn)換說明中的順序相同。
    • vprintf()函數(shù)和vsprintf()函數(shù)
      • 上述兩個(gè)函數(shù)更多的是針對與數(shù)組,它們需要接受兩個(gè)參數(shù):格式字符串和參數(shù)數(shù)組,而不接收可變數(shù)量的參數(shù)。
        -** 改變字符串大小寫**
    • 可以重新格式化字符串中的字母大小寫。
    • 相關(guān)函數(shù)和效果
      • $abc="total Amount of Order";為例

      • strtoupper()

        • 將字符串轉(zhuǎn)換為大寫。
        • echo strtoupper($abc)
        • strtoupper()
      • strtolower()

        • 將字符串轉(zhuǎn)換成小寫
        • echo strtolower($abc);
strtolower()
    - ucfirst()
        - 如果字符串的第一個(gè)字符是字母,就大寫該字母。
        - `echo ucfirst($abc);`
        - 
ucfirst()
    - ucwords()
        - 將字符串每個(gè)單詞的第一個(gè)字母轉(zhuǎn)換為大寫
        - `echo ucwords($abc);`
        - 
ucwords()
  • 格式化字符串后存儲
    • 目的是為了將重新格式化的字符串更便于存入數(shù)據(jù)庫。
    • 之所以要這么做是因?yàn)閿?shù)據(jù)庫有時(shí)候會將某些字符解釋成控制符。比如"",'',\和NULL字符。
    • 很多時(shí)候的做法是我們在這些字符前面加上轉(zhuǎn)義字符(也就是\),這樣""就變成了" ",' ',\。
    • 轉(zhuǎn)義字符對所有特殊字符都通用,所以如果某個(gè)字符串中存在\\這樣的特殊字符,則轉(zhuǎn)義的顯示為\\。
    • addslashes()函數(shù)
      • 該函數(shù)是PHP中專門用于轉(zhuǎn)義的函數(shù)。
      • 該函數(shù)和其他函數(shù)一樣,需要一個(gè)字符串作為輸入?yún)?shù);然后經(jīng)過處理之后,返回一個(gè)重新格式化后的字符串。
      • $feedback=addslashes(trim($_POST['feedback']));為例
      • 不加addslashes()函數(shù)前
      • 加了addslashes()函數(shù)后
      • 現(xiàn)在的PHP版本 對所有的 GET、POST 和 COOKIE 數(shù)據(jù)自動(dòng)運(yùn)行 addslashes()。所以不需要對已經(jīng)轉(zhuǎn)義過的字符串使用addslashes()函數(shù),因?yàn)橐坏┦褂镁蜁?dǎo)致雙層轉(zhuǎn)義。
    • stripslashes()函數(shù)
      • 該函數(shù)可用于刪除有addslashes()函數(shù)添加的反斜杠。
      • 也可用于清理從數(shù)據(jù)庫中或從THML表單中取回的數(shù)據(jù)中的數(shù)據(jù)

3.連接和分割字符串

  • explode()、implode()和join()
    • explode()函數(shù)
      • array explode( string separator, string input [, int limit]);
      • 該函數(shù)帶有一個(gè)輸入字符串作為參數(shù),并根據(jù)一個(gè)指定的分隔符字符串將字符串本身分割為小塊,將分割后的小塊返回到一個(gè)數(shù)組中。
      • limit參數(shù)是可選參數(shù),其可以用來限制分成字符串小塊的數(shù)量。
      • 舉例:
        • $email=trim($_POST['email']);
          $email_array=explode('@',$email);
          print_r($email_array);
已經(jīng)被分成了數(shù)組
- *implode()和join()函數(shù)*
    - 兩個(gè)函數(shù)的結(jié)果是一致得,他們所實(shí)現(xiàn)的效果與explode()正好相反。
    - 舉例:
        - `$emailArray=explode('@',$email);`
`$newArray=implode('*',$emailArray);`
`echo gettype($newArray)."->".$newArray;`

        - 
又被合成回了一個(gè)字符串變量
  • strtok()函數(shù)
    • string strtok(string input, string separator);
    • 該函數(shù)可以一次只從字符串中取出一些片段(token),這與explode()函數(shù)的每次將一個(gè)字符串全部分割成若干小塊是不同的。
    • 對于從字符串中取出單個(gè)單詞的處理來說,strtok()函數(shù)效果更好一些。
    • 該函數(shù)的分隔符可以是一個(gè)字符,也可以是一個(gè)字符串;但需要注意的是,輸入的字符串會根據(jù)分隔符字符串中的每個(gè)字符來進(jìn)行分隔,而不是根據(jù)整個(gè)字符串來分隔。
    • 如果為了獲得首個(gè)token,在調(diào)用該函數(shù)時(shí),需要輸入兩個(gè)參數(shù):一個(gè)是要進(jìn)行token化的字符串,還有進(jìn)分隔符;而在之后的調(diào)用中,則可以只用分隔符一個(gè)參數(shù)。
    • 舉例:
      $feedBack=addslashes(trim( $_POST['feedback']));
      $token=strtok($feedBack," ");
      echo $token."<br />";
      while ($token!=" "){
      $token=strtok(" "); //當(dāng)今性二次調(diào)用的時(shí)候就不用再次輸入調(diào)用的字符串了
      echo $token."<br />";
      }
根據(jù)空格進(jìn)行分割
  • substr()函數(shù)
    • string substr(string string., int start[, int length]);
    • 該函數(shù)允許我們訪問一個(gè)字符串給定起點(diǎn)和終點(diǎn)的子字符串,換句話說就是返回substr()函數(shù)所選定的一部分字符串。
      • string必選參數(shù)。指定所要返回那一部分字符串。
      • start必選參數(shù)。指定字符串從指定的位置開始。
        • 正數(shù):從字符串指定的位置開始
        • 負(fù)數(shù):從字符串結(jié)尾開始的指定位置開始。
        • 0:從字符串中的第一個(gè)字符處開始;字符串和數(shù)組一樣,起點(diǎn)都是從0開始的
        • 如果只用正數(shù)作為子字符串起點(diǎn)來調(diào)用這個(gè)函數(shù),則得到的是從起點(diǎn)到字符串結(jié)束的整個(gè)字符串。
          • 舉例:
            $test= 'Your customer service is excellent'; echo substr($test,1);
從1開始到結(jié)束的字符串
    - 如果用負(fù)數(shù)作為子字符串起點(diǎn)來調(diào)用這個(gè)函數(shù),得到的則是從該字符串末端返回的長度。
        - 舉例:
        `$test= 'Your customer service is excellent';

echo substr($test,-17);`
-

從字符串末端往前倒推

    - length參數(shù)。
        - 可選,規(guī)定被返回字符串的長度。
        - 默認(rèn)是到字符串結(jié)尾。
        - 正數(shù):從start參數(shù)所在的位置往后所返回的length長度。
        - 負(fù)數(shù):從字符串末端返回的長度
        - 舉例:
            - `$test= 'Your customer service is excellent';

echo substr($test,1,13);`
-


正數(shù):返回從第1個(gè)開始到正數(shù)第13個(gè)字符
            - `$test= 'Your customer service is excellent';

echo substr($test,1,-1);`
-


負(fù)數(shù):返回從第1個(gè)開始到倒數(shù)第1個(gè)字符

4.比較字符串

  • ==
    • 最簡單的方法:使用"=="來比較兩個(gè)字符串是否相等。
  • strcmp()、strasecmp()和strnatcmp()
    • strcmp()
      • int strcmp(string str1,string str2)
      • 如果str1==str2,則該函數(shù)返回0;
        • $str1="abc";
          $str2="abc";
          echo strcmp($str1,$str2);

str1=str2

- 如果str1>str2,則該函數(shù)返回一個(gè)整數(shù)。
- $str1="abc";
$str2="ABC";
echo strcmp($str1,$str2);
-
str1>str2

- 如果str1<str2,則該函數(shù)返回一個(gè)負(fù)數(shù)。
- $str1="ABC";
$str2="abc";
echo strcmp($str1,$str2);
-
str1<str2

- 該函數(shù)區(qū)分大小寫
- a>z>A>Z
- strcasecmp()函數(shù)
- 除了不區(qū)分大小寫之外,其他和strcmp()函數(shù)一樣。
- $str1="ABC";
$str2="abc";
echo strcasecmp($str1,$str2);
-
不區(qū)分大小寫

-   strnatcmp()函數(shù)
    -   除了不區(qū)分大小寫之外,該函數(shù)還會按照自然排序比較字符串。
            -   自然排序是指按人們習(xí)慣的順序進(jìn)行排序。
                -   比如在字典排序上來看2>12,因?yàn)?在12前面。
                -   而自然排序來說12>2。
    - `$str1="2";`

$str2="12";
echo strcasecmp($str1,$str2)."<br />";
echo strnatcmp($str1,$str2);
-

strcasecmp:"2">"12";strnatcmp:"2"<"12"

  • strlen()函數(shù)
    • 該函數(shù)用來檢查字符串的長度。
    • echo strlen("Hello World");
    • 該函數(shù)計(jì)算空格

5.匹配和替換字符串

  • strstr()、strchr()、strrchr()和stristr()函數(shù)
    • 上述函數(shù)都是在一個(gè)字符串中查找另一個(gè)字符串
    • strstr()函數(shù)
      • string strstr(string haystack, string needle);
      • 該函數(shù)可以用于在一個(gè)較長的字符串中查找匹配的字符串或字符。
      • strchr()和strstr()完全一樣,這兩個(gè)函數(shù)都可以在字符串中查找一個(gè)字符串,包括只包含一個(gè)字符的字符串。
      • 想要使用該函數(shù)必須向該函數(shù)傳遞一個(gè)要被搜索的子字符串參數(shù)和一個(gè)目標(biāo)關(guān)鍵字字符串參數(shù)。
      • 如果只找到了該關(guān)鍵字的一個(gè)精確匹配,則會從目標(biāo)關(guān)鍵字前面返回被搜索的字符串,否則返回值為false。
      • 如果存在不止一個(gè)關(guān)鍵字,則返回的字符串從出現(xiàn)的第一個(gè)目標(biāo)關(guān)鍵字的位置開始。
      • 舉例:
      • $toaddress="feedback@example.back.com";
        echo strstr($toaddress,"exa");
只有一個(gè)關(guān)鍵字
    -       `$toaddress="feedback@example.back.com";`

echo strstr($toaddress,"exa");
-

不止一個(gè)關(guān)鍵字

- *stristr()函數(shù)*
    - 該函數(shù)是strstr()的變體,主要區(qū)別在于不區(qū)分字符的大小寫。
- *strrchr()函數(shù)*
    - 該函數(shù)作用和strstr()一樣,區(qū)別在于會從最后出現(xiàn)目標(biāo)關(guān)鍵字的位置的前面返回被搜索字符串;簡單來說就是從后往前搜索。
    - 該搜索在實(shí)際使用中與strstr()函數(shù)還有一點(diǎn)不同在于,該搜索從后向前搜索時(shí),遇到第一個(gè)精確匹配的關(guān)鍵字之后就返回結(jié)果了,不再向前繼續(xù)搜索。
    -  `$toaddress="feedback@example.back.com";`

echo strrchr($toaddress,"back");
-

找到back后就不再繼續(xù)向前搜索了

  • strpos()、strrpos()函數(shù)
    • 這兩個(gè)函數(shù)都是返回目標(biāo)關(guān)鍵字子字符串在北搜索字符串中的位置。
    • 現(xiàn)在PHP建議在查找某個(gè)子字符串在字符串中出現(xiàn)的位置時(shí)候,推薦使用strpos()函數(shù)來代替strstr()函數(shù),因?yàn)榍罢卟檎宜俣雀臁?/li>
    • strpos()函數(shù)
      • int strpoe(string haystack, string needle, int[offset]);
      • 該函數(shù)區(qū)分大小寫。
      • 舉例:
        • $test="hello world";
          echo strpos($test,"r");
      • "r"在字符串$test中位于第8個(gè)(從0開始)
      • 該函數(shù)offset參數(shù)可以用來指定被搜索字符串的開始搜索位置。
        • 舉例:
        • $test="I still haven't received delivery of my last order.";
          echo strpos($test,"s",5);
        • 讀作42,實(shí)際是43
        • 該函數(shù)是從$test字符串第5個(gè)開始對"s"進(jìn)行搜索,所以看不到第2個(gè)位置的"s"(記住字符串也是從0開始計(jì)數(shù)),下一個(gè)"s"出現(xiàn)在第42(實(shí)際43)個(gè)位置
    • strrpos()函數(shù)
      • 該函數(shù)返回的是被搜索字符串中最后一次出現(xiàn)目標(biāo)關(guān)鍵字的子字符串的位置;簡單來說就是從后往前搜索到精確匹配子字符串的位置。
      • 舉例:
        • $test="I still haven't received delivery of my last order.";
          echo strpos($test,"s")."<br />";
          echo strrpos($test,"s");
正數(shù)第2個(gè)和正數(shù)第42個(gè)
        - 同樣是搜索"s",strpos()搜索到的是正數(shù)第2個(gè),strrpos()搜索到的則是正數(shù)第42個(gè)。
-   存在的問題:
    -   因?yàn)闊o論在什么情況下,strpos()和strrpos()函數(shù)如果查不到目標(biāo)關(guān)鍵字,則其會返回false。而對于PHP來說false等于0,而0又代表著所查找字符串的第一個(gè)字符,這將可能使得今后對字符串的操作造成問題。為了避免此問題的出現(xiàn),我們是時(shí)候用上"==="了。
    -   `$test="I still haven't received delivery of my last order.";`

$result=strpos($test,"x");
if($result===false){
echo "Not found";
}else{
echo "Found at position".$result;
}
echo "<br />".gettype(strpos($test,"x"));
echo "<br />".gettype(strrpos($test,"s"));
-

一旦找不到該關(guān)鍵字,就會變成布爾型

  • 替換字符串

    • 該操作也可以用字符串函數(shù)或者正則表達(dá)式函數(shù)來實(shí)現(xiàn)。
    • str_replace()函數(shù)
      • mixed str_replace(mixed needle,mixed new_needle, mixed haystack[, int & count]);
      • 個(gè)人理解:
        • needle:查找的值;
        • new_needle:替換查找到的值(替換needle);
        • haystack:包含查找值()needle)的被搜索字符串;
        • count:統(tǒng)計(jì)替換的次數(shù)。
      • 該函數(shù)用new_needle替換所有的haysatck中的needle,并且返回haystack替換后的記過。
      • count是可選的,它包含了要執(zhí)行的替換操作次數(shù)。
        • 舉例:
          • $arr = array("blue","red","green","yellow");
            print_r(str_replace("red","pink",$arr,$i));
            echo "替換數(shù):$i";
            -
            $i計(jì)算替換的次數(shù)
      • 該函數(shù)區(qū)分大小寫;如若不想?yún)^(qū)分則應(yīng)該使用str_ireplace()函數(shù)。
      • 該函數(shù)必須遵守的規(guī)則:
        • 如果搜索的字符串()是數(shù)組,那么它也將返回?cái)?shù)組;
        • 如果搜索的字符串是數(shù)組,那么它將對數(shù)組中的每個(gè)元素進(jìn)行查找和替換;
        • 如果同時(shí)需要對數(shù)組進(jìn)行查找和替換,并且需要執(zhí)行替換的元素少于查找到的元素的數(shù)量,那么多余元素將用空字符串進(jìn)行替換;
          • 舉例:
            • $find = array("Hello","world");
              $replace = array("B");
              $arr = array("Hello","world","!");
              print_r(str_replace($find,$replace,$arr));
            • world被替換成了空字符
        • 如果查找的是數(shù)組,而替換的是字符串,那么替代字符串將對所有查找到的值起作用。
      • 該函數(shù)可以用來替換敏感詞。
  • substr_replace()函數(shù)

    • string substr_replace(string string, string replacement, int start, int [length]);
    • 個(gè)人理解:
      • string:需要檢查的字符串
      • replacement:需要替換的字符串
      • start:在字符串的何處開始替換,所謂的偏移量
      • length:要替換多少個(gè)字符
    • 該函數(shù)是把字符串的一部分替換成另外一個(gè)字符串。
    • start參數(shù)
      • 正數(shù):在字符串中的指定位置開始替換;

        • echo substr_replace("Hello world","Shanghai",7);
        • 從第7個(gè)字符開始替換
      • 負(fù)數(shù):從字符串末尾的指定位置開始替換

        • echo substr_replace("Hello world","Shanghai",-3);
        • 從倒數(shù)第3個(gè)字符開始替換
      • 0:從字符串第一個(gè)位置開始替換

        • echo substr_replace("Hello world","Beijing",0);
        • 從0開始的字符串
        • 0的特點(diǎn)在于如果replace的字符串?dāng)?shù)量小于string的話,則string多出來的也不會顯示。
    • length參數(shù)(可選)
      • 正數(shù):被替換的字符串長度;
        • echo substr_replace("Hello world","Beijing",0,2);
        • 被替換的字符串長度為2
      • 負(fù)數(shù):等待替換的子字符串結(jié)尾處距離string末端的字符個(gè)數(shù);
        • echo substr_replace("Hello world","Beijing",0,-2);
        • 距離末端2個(gè)字符個(gè)數(shù)
      • 0:插入而非替換
        • echo substr_replace("Hello world","Beijing",0,0);
        • 插入而非替換
  • 正則表達(dá)式

    • 字符串函數(shù)的使用只限于進(jìn)行精確匹配或精確的字符串匹配;而如果希望完成一些更復(fù)雜的模式匹配,則應(yīng)該嘗試使用正則表達(dá)式。
    • 正則表達(dá)是是一種描述一段文本模式的方法;精確匹配其實(shí)也是一種正則表達(dá)式,比如搜索字符串“l(fā)ove”,其實(shí)就是一個(gè)正則表達(dá)式。
    • 使用正則表達(dá)式,可以更具體地指明希望匹配的字符類型,并且可以指明字符所屬的一個(gè)集合。
      • 比如想要尋找以og結(jié)尾的字符串,就可以用.at來表示;
        • 但這樣的用法有一個(gè)缺陷在于所查找出來的at結(jié)尾的字符串可能會包含特殊字符,如:#og,&og等。
        • 如果想要把其限定在英文字母內(nèi),則應(yīng)該寫作[a-z]og或者[A-Z]og亦或者[a-zA-Z]og,這樣就可以更精確的找出例如dog的、Tog等字符串。
    • 關(guān)于脫字符(^)
      • 如果脫字符()被包括在方括號里面,如[a-z],則表示否;
      • 如果放在方括號外則會有兩種情況:
        1.放在正則表達(dá)式前,如:^[a-zA-Z0-9_-]這種情況,則表示正則表達(dá)式的開始;在實(shí)際運(yùn)行時(shí)則會根據(jù)后方的正則表達(dá)式來匹配應(yīng)內(nèi)容。
        2.而如果僅僅是單獨(dú)使用,則會被解釋為一般的特殊字符;同樣的如果想要在正則表達(dá)式中使用^作為一般特殊字符,則需要在其前面加上轉(zhuǎn)義字符(\),如\^。
POSIX正則表達(dá)式中,用于方括號([])外面的特殊字符
POSIX正則表達(dá)式中,用于方括號([])里面的特殊字符

正則表達(dá)式入門:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,802評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內(nèi)容