正则表达式语法集合
正則表達式的語法表
--------------------------------------------------------------
【描述】
????用特殊字符和序列,來為正則表達式書寫模式。下面的表描述了這些字符,并包括了簡短的例子,來說明如何使用這些字符。?
________________________________________________________________
字符??|?????????????????????描述?
----------------------------------------------------------------
\?????|??標記下一個字符是特殊字符或文字。例如,"n"?和字符?"n"?匹配。
??????|??"\n"?則和換行字符匹配。序列?"\\"?和?"\"?匹配,而?"\("?則
??????|??和?"("?匹配。?
----------------------------------------------------------------
^?????|??匹配輸入的開頭。?
----------------------------------------------------------------
$?????|??匹配輸入的末尾。?
----------------------------------------------------------------
*?????|??匹配前一個字符零或多次。例如,"zo*"?與?"z"?或?"zoo"?匹配。?
----------------------------------------------------------------
+?????|??匹配前一個字符一次或多次。例如,"zo+"?與?"zoo"?匹配,但和?"z"?
??????|??不匹配。??
----------------------------------------------------------------
??????|??匹配前一個字符零或一次。例如,"a?ve?"?和?"never"?中的?"ve"?匹
??????|??配。??
-----------------------------------------------------------------
.?????|?匹配除換行字符外的任何單個字符。??
-----------------------------------------------------------------
(pat-?|??匹配?pattern?并記住該匹配。匹配上的子字符串,可以使用?Item?
tern)?|??[0]...[n],來從生成的?Matches?集合中取回。要匹配圓括號字
??????|??符?(?),則需使用?"\("?或?"\)"。?
-----------------------------------------------------------------
x|y???|??匹配?x?或?y。例如,"z|food"?和?"z"?或?"food"?匹配。"(z|f)
??????|??ood"?匹配?"zoo"?或?"food"。??
-----------------------------------------------------------------
{n}???|?n?是非負整數。共匹配?n?次。例如,"o{2}"?和?"Bob"?中的?"o"?不匹
??????|?配,但和?"foooood"?中的前兩個?o?匹配。?
-----------------------------------------------------------------
{n,}??|?n?是一個非負整數。至少匹配?n?次。例如,"o{2,}"?和?"Bob"?中
??????|??的?"o"?不匹配,但和?"foooood"?中的所有?o?匹配。"o{1,}"?
??????|?與?"o+"?等效。"o{0,}"?和?"o*"?等效。?
-----------------------------------------------------------------
{n,m}?|?m?和?n?是非負整數。至少匹配?n?次而至多匹配?m?次。例如,"o
??????|??{1,3}"?和?"fooooood"?中的前三個?o?匹配。"o{0,1}"?和?"o?"?等
??????|?效。?
-----------------------------------------------------------------
[xyz]?|?字符集合。匹配括號內的任一字符。例如,"[abc]"?和?"plain"?中
??????|?的?"a"?匹配。?
-----------------------------------------------------------------
[^xyz]|?否定字符集合。匹配非括號內的任何字符。例如,"[^abc]"?
??????|??和?"plain"?中的?"p"?匹配。??
-----------------------------------------------------------------
[a-z]?|?字符范圍。和指定范圍內的任一字符匹配。例如,"[a-z]"?匹配?"a"?
??????|?到?"z"范圍內的任一小寫的字母表字符。??
-----------------------------------------------------------------
[^m-z]|?否定字符范圍。匹配不在指定范圍內的任何字符。例如,"[m-z]"?匹配不
??????|?在?"m"?到?"z"范圍內的任何字符。??
-----------------------------------------------------------------
\b????|?匹配字的邊界,也就是說,在字和空格之間的位置。例如,"er\b"?
??????|?和?"never"?中的?"er"?匹配,但和?"verb"?中的?"er"?不匹配。??
-----------------------------------------------------------------
\B????|?匹配非字邊界。"ea*r\B"?和?"never?early"?中的?"ear"?匹配。??
-----------------------------------------------------------------
\d????|?匹配數字字符。等價于?[0-9]。??
-----------------------------------------------------------------
\D????|?匹配非數字字符。等價于?[^0-9]。??
-----------------------------------------------------------------
\f????|?匹配換頁字符。??
-----------------------------------------------------------------
\n????|?匹配換行字符。??
-----------------------------------------------------------------
\r????|?匹配回車符字符。??
-----------------------------------------------------------------
\s????|匹配任何空白,包括空格、制表、換頁等。與?"[?\f\n\r\t\v]"?等效。?
-----------------------------------------------------------------
\S????|?匹配任何非空白字符。與?"[^?\f\n\r\t\v]"?等效。??
-----------------------------------------------------------------
\t????|?匹配制表字符。??
-----------------------------------------------------------------
\v????|?匹配垂直制表符。??
-----------------------------------------------------------------
\w????|?匹配包括下劃線在內的任何字字符。與?"[A-Za-z0-9_]"?等效。??
-----------------------------------------------------------------
\W????|?匹配任何非字字符。與?"[^A-Za-z0-9_]"?等效。??
-----------------------------------------------------------------
\num??|?匹配?num,其中?num?是一個正整數。返回記住的匹配的引用。例
??????|?如,"(.)\1"?匹配兩個連續的同一字符。??
-----------------------------------------------------------------
\n????|?匹配?n,其中?n?是八進制換碼值。八進制換碼值必須是?1、2、或?3?位
??????|?長。例如,"\11"?和?"\011"?都匹配制表字符。"\0011"?和?"\001"?
??????|?&?"1"?是等效的。八進制換碼值必須不超過?256。如果超過了,則只有
??????|?前兩位組成表達式。允許在正則表達式中使用?ASCII?碼。?
-----------------------------------------------------------------
\xn???|?匹配?n,其中?n?是十六進制換碼值。十六進制換碼值必須正好是兩位
??????|?長。例如,"\x41"?與?"A"?匹配。"\x041"?和?"\x04"?&?"1"?是等效
??????|?的。允許在正則表達式中使用?ASCII?碼。?
----------------------------------------------------------------- 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
--------------------------------------------------------------
【描述】
????用特殊字符和序列,來為正則表達式書寫模式。下面的表描述了這些字符,并包括了簡短的例子,來說明如何使用這些字符。?
________________________________________________________________
字符??|?????????????????????描述?
----------------------------------------------------------------
\?????|??標記下一個字符是特殊字符或文字。例如,"n"?和字符?"n"?匹配。
??????|??"\n"?則和換行字符匹配。序列?"\\"?和?"\"?匹配,而?"\("?則
??????|??和?"("?匹配。?
----------------------------------------------------------------
^?????|??匹配輸入的開頭。?
----------------------------------------------------------------
$?????|??匹配輸入的末尾。?
----------------------------------------------------------------
*?????|??匹配前一個字符零或多次。例如,"zo*"?與?"z"?或?"zoo"?匹配。?
----------------------------------------------------------------
+?????|??匹配前一個字符一次或多次。例如,"zo+"?與?"zoo"?匹配,但和?"z"?
??????|??不匹配。??
----------------------------------------------------------------
??????|??匹配前一個字符零或一次。例如,"a?ve?"?和?"never"?中的?"ve"?匹
??????|??配。??
-----------------------------------------------------------------
.?????|?匹配除換行字符外的任何單個字符。??
-----------------------------------------------------------------
(pat-?|??匹配?pattern?并記住該匹配。匹配上的子字符串,可以使用?Item?
tern)?|??[0]...[n],來從生成的?Matches?集合中取回。要匹配圓括號字
??????|??符?(?),則需使用?"\("?或?"\)"。?
-----------------------------------------------------------------
x|y???|??匹配?x?或?y。例如,"z|food"?和?"z"?或?"food"?匹配。"(z|f)
??????|??ood"?匹配?"zoo"?或?"food"。??
-----------------------------------------------------------------
{n}???|?n?是非負整數。共匹配?n?次。例如,"o{2}"?和?"Bob"?中的?"o"?不匹
??????|?配,但和?"foooood"?中的前兩個?o?匹配。?
-----------------------------------------------------------------
{n,}??|?n?是一個非負整數。至少匹配?n?次。例如,"o{2,}"?和?"Bob"?中
??????|??的?"o"?不匹配,但和?"foooood"?中的所有?o?匹配。"o{1,}"?
??????|?與?"o+"?等效。"o{0,}"?和?"o*"?等效。?
-----------------------------------------------------------------
{n,m}?|?m?和?n?是非負整數。至少匹配?n?次而至多匹配?m?次。例如,"o
??????|??{1,3}"?和?"fooooood"?中的前三個?o?匹配。"o{0,1}"?和?"o?"?等
??????|?效。?
-----------------------------------------------------------------
[xyz]?|?字符集合。匹配括號內的任一字符。例如,"[abc]"?和?"plain"?中
??????|?的?"a"?匹配。?
-----------------------------------------------------------------
[^xyz]|?否定字符集合。匹配非括號內的任何字符。例如,"[^abc]"?
??????|??和?"plain"?中的?"p"?匹配。??
-----------------------------------------------------------------
[a-z]?|?字符范圍。和指定范圍內的任一字符匹配。例如,"[a-z]"?匹配?"a"?
??????|?到?"z"范圍內的任一小寫的字母表字符。??
-----------------------------------------------------------------
[^m-z]|?否定字符范圍。匹配不在指定范圍內的任何字符。例如,"[m-z]"?匹配不
??????|?在?"m"?到?"z"范圍內的任何字符。??
-----------------------------------------------------------------
\b????|?匹配字的邊界,也就是說,在字和空格之間的位置。例如,"er\b"?
??????|?和?"never"?中的?"er"?匹配,但和?"verb"?中的?"er"?不匹配。??
-----------------------------------------------------------------
\B????|?匹配非字邊界。"ea*r\B"?和?"never?early"?中的?"ear"?匹配。??
-----------------------------------------------------------------
\d????|?匹配數字字符。等價于?[0-9]。??
-----------------------------------------------------------------
\D????|?匹配非數字字符。等價于?[^0-9]。??
-----------------------------------------------------------------
\f????|?匹配換頁字符。??
-----------------------------------------------------------------
\n????|?匹配換行字符。??
-----------------------------------------------------------------
\r????|?匹配回車符字符。??
-----------------------------------------------------------------
\s????|匹配任何空白,包括空格、制表、換頁等。與?"[?\f\n\r\t\v]"?等效。?
-----------------------------------------------------------------
\S????|?匹配任何非空白字符。與?"[^?\f\n\r\t\v]"?等效。??
-----------------------------------------------------------------
\t????|?匹配制表字符。??
-----------------------------------------------------------------
\v????|?匹配垂直制表符。??
-----------------------------------------------------------------
\w????|?匹配包括下劃線在內的任何字字符。與?"[A-Za-z0-9_]"?等效。??
-----------------------------------------------------------------
\W????|?匹配任何非字字符。與?"[^A-Za-z0-9_]"?等效。??
-----------------------------------------------------------------
\num??|?匹配?num,其中?num?是一個正整數。返回記住的匹配的引用。例
??????|?如,"(.)\1"?匹配兩個連續的同一字符。??
-----------------------------------------------------------------
\n????|?匹配?n,其中?n?是八進制換碼值。八進制換碼值必須是?1、2、或?3?位
??????|?長。例如,"\11"?和?"\011"?都匹配制表字符。"\0011"?和?"\001"?
??????|?&?"1"?是等效的。八進制換碼值必須不超過?256。如果超過了,則只有
??????|?前兩位組成表達式。允許在正則表達式中使用?ASCII?碼。?
-----------------------------------------------------------------
\xn???|?匹配?n,其中?n?是十六進制換碼值。十六進制換碼值必須正好是兩位
??????|?長。例如,"\x41"?與?"A"?匹配。"\x041"?和?"\x04"?&?"1"?是等效
??????|?的。允許在正則表達式中使用?ASCII?碼。?
----------------------------------------------------------------- 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
- 上一篇: mysql实现汉字转拼音
- 下一篇: nginx+tomcat实现主备切换