簡單使用 preg_replace() + Regular Expression @ 網頁程式 - coke750101™ :: 隨意窩 Xuite日誌
  • BlogAD
  • BloggerADs
  • 關鍵字
    1. 沒有新回應!
  • 人數即時統計
  • Google Analytics
  • Yahoo! 站長工具
  • 201002272210簡單使用 preg_replace() + Regular Expression

    以下轉錄自:http://blog.xuite.net/trully.hsiang/man/25582717



    簡單使用 preg_replace() + Regular Expression

    將煩人的「單引號」與「雙引號」的符號去掉 (真是破釜沉舟啊,忪快~)

    1. preg_replace('/"|\'/'''$str)  

    ps.| 是「或」的意思

     

    順便貼幾篇不錯的說明文章~

    常見的字元意義
    來源:http://blog.roodo.com/rocksaying/archives/2670695.html

    1. ^
      寫在 pattern 第一個位置時,表示其後一符號必須出現在字串開頭的位置。寫在 pattern 中間位置時則為否定之意,表示字串中不可有 ^ 之後一符號的內容。
    2. $
      寫在 pattern 最後一個位置時,表示其前一符號必須出現在字串尾端的位置。寫在 pattern 中時無特別意義。
    3. *
      表示字串中有 0 到無數個其前一符號的內容。
    4. +
      表示字串中有 1 到無數個其前一符號的內容。
    5. ?
      表示字串中有 0 到 1個其前一符號的內容。
    6. { }
      表示前一符號在字串中的重覆次數。例如 /A{2}/ 表示 'A' 重覆兩次 (即 'AA') ;/A{2,}/ 表示字串含有 2 到無數多個 'A' ;/A{2,5}/ 表示含有 2 到 5 個 'A' 。
    7. .
      表示一個任意字元。
    8. [ ]
      表示字串含有括號中任一字元的內容。可以 - 表示一組連續字元,例如 /[a-z]/, /[0-9]/ 。注意, [] 僅代表一個字元,例如 /[abc]/ 表示 'a' 或 'b' 或 'c' ,而不是 'abc' 。
    9. ( )
      表示一個 sub pattern ,符合 sub pattern 的字串內容會被存放在匹配陣列中,並依序指派數字代表此 sub pattern 。可以此數字在 pattern 的其他地方引用內容,例如 /The h([0-9]) means Title (\1)/ 表示第 1 個 sub pattern 是 0 到 9 的任一字元,而 \1 表示匹配的內容。故 'The h1 means Title 1', 'The h2 means Title 2' 到 'The h9 means Title 9' 符合規則。
    10. \
      表示轉義 (escaping) ,將其後的字元視為一般字元。例如要表示字串中含有 '/' 字元時,就必須寫作 /\// 。
    11. |
      「或」意,字串中含有 '|' 之前一符號或後一符號的內容。例如 /image\.(jpg|png)/ 表示 'image.jpg' 或 'image.png' 。通常會用 () 括住 '|' 的前後符號。
    12. \d
      表示任何一個數字,意同 [0-9] 。
    13. \D
      表示任何一個非數字,意同 [^0-9] 。
    14. \w
      表示任何一個字元與數字以及 '_' ,意同 [a-zA-Z0-9_] 。
    15. \W
      表示任何一個 \w 以外的字元。
    16. \s
      表示任何一個空白符號,包括 \t, \v 等。
    17. \S
      表示任何一個非空白符號。

     

    正規表示法:相關列表
    來源:http://neural.cs.nthu.edu.tw/jang/books/webprog/03jscript/reg3.asp?SessionCount=15

    字元 說明 簡單範例
    \ 避開特殊字元 /A\*/ 可用於比對 "A*",其中 * 是一個特殊字元,為避開其特殊意義,所以必須加上 "\"
    ^ 比對輸入列的啟始位置 /^A/ 可比對 "Abcd" 中的 "A",但不可比對 "aAb"
    $ 比對輸入列的結束位置 /A$/ 可比對 "bcdA" 中的 "A",但不可比對 "aAb"
    * 比對前一個字元零次或更多次 /bo*/ 可比對 "Good booook" 中的 "booo",亦可比對 "Good bk" 中的 "b"
    + 比對前一個字元一次或更多次,等效於 {1,} /a+/ 可比對 "candy" 中的 "a",但不可比對 "caaandy"
    ? 比對前一個字元零次或一次 /e?le?/ 可比對 "angel" 中的 "el",但不可比對 "angle"
    . 比對任何一個字元(但換行符號不算) /.n/ 可比對 "nay, an apple is on the tree" 中的 "an" 和 "on",但不可比對 "nay"
    (x) 比對 x 並將符合的部分存入一個變數 /(a*) and (b*)/ 可比對 "aaa and bb" 中的 "aaa" 和 "bb",並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。
    xy 比對 x 或 y /a*b*/g 可比對 "aaa and bb" 中的 "aaa" 和 "bb"
    {n} 比對前一個字元 n 次,n 為一個正整數 /a{3}/ 可比對 "lllaaalaa" 其中的 "aaa" 但不可比對 "aa"
    {n,} 比對前一個字元至少 n 次,n 為一個正整數 /a{3,}/ 可比對 "aa aaa aaaa" 其中的 "aaa" 及 "aaaa" 但不可比對 "aa"
    {n,m} 比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數 /a{3,4}/ 可比對 "aa aaa aaaa aaaaa" 其中的 "aaa" 及 "aaaa" 但不可比對 "aa" 及 "aaaaa"
    [xyz] 比對中括弧內的任一個字元 /[ecm]/ 可比對 "welcome" 中的 "e" 或 "c" 或 "m"
    [^xyz] 比對不在中括弧內出現的任一個字元 /[^ecm]/ 可比對 "welcome" 中的 "w" "l" "o" 可見出其與 [xyz] 功能相反 同時請同學也注意 /^/ 與 [^] 之間功能的不同
    [\b] 比對退位字元(Backspace character) 可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別
    \b 比對英文字的邊界,例如空格 例如 /\bn\w/ 可以比對 "noonday" 中的 'no' ;
    /\wy\b/ 可比對 "possibly yesterday." 中的 'ly'
    \B 比對非「英文字的邊界」 例如, /\w\Bn/ 可以比對 "noonday" 中的 'on' ,
    另外 /y\B\w/ 可以比對 "possibly yesterday." 中的 'ye'
    \cX 比對控制字元(Control character),其中 X 是一個控制字元 /\cM/ 可以比對 一個字串中的 control-M
    \d 比對任一個數字,等效於 [0-9] /[\d]/ 可比對 由 "0" 至 "9" 的任一數字 但其餘如字母等就不可比對
    \D 比對任一個非數字,等效於 [^0-9] /[\D]/ 可比對 "w" "a"... 但不可比對如 "7" "1" 等數字
    \f 比對 form-feed 若是在文字中有發生 "換頁" 的行為 則可以比對成功
    \n 比對換行符號 若是在文字中有發生 "換行" 的行為 則可以比對成功
    \r 比對 carriage return
    \s 比對任一個空白字元(White space character),等效於 [ \f\n\r\t\v] /\s\w*/ 可比對 "A b" 中的 "b"
    \S 比對任一個非空白字元,等效於 [^ \f\n\r\t\v] /\S/\w* 可比對 "A b" 中的 "A"
    \t 比對定位字元(Tab)
    \v 比對垂直定位字元(Vertical tab)
    \w 比對數字字母字元(Alphanumerical characters)或底線字母("_"),等效於 [A-Za-z0-9_] /\w/ 可比對 ".A _!9" 中的 "A" "_" "9"
    \W 比對非「數字字母字元或底線字母」,等效於 [^A-Za-z0-9_] /\W/ 可比對 ".A _!9" 中的 "." " " "!" 可見出其與 \w 功能恰好相反
    \ooctal 比對八進位,其中octal是八進位數目 /\oocetal123/ 可比對 與 八進位的ASCII中 "123" 所相對應的字元值
    \xhex 比對十六進位,其中hex是十六進位數目 /\xhex38/ 可比對 與 16進位的ASCII中 "38" 所相對應的字元

     

    去除字串中間的連續空白......|日誌首頁|Javascript 字串處理...上一篇去除字串中間的連續空白...下一篇Javascript 字串處理 (String Operations)...
    回應