正则表达式的基本语法
生活随笔
收集整理的這篇文章主要介紹了
正则表达式的基本语法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- \ 轉義符
- ^ 匹配輸入字符串的開始位置
- $ 匹配輸入字符串的結束位置
- * 匹配前面的子表達式任意次 。 zo*等價于zo{0,}
- + 匹配前面的子表達式一次或多次。 zo+等價于zo{1,}
- ? 匹配前面的子表達式零次或一次。zo?等價于zo{0,1}
- {n} 匹配確定的n次。o{2}等價于oo
- {n,} 至少匹配n次。o{2,}表示2個o,或者大于2個o
- {n,m} 匹配n次到m次。o{2,5}表示有2個到5個的o
- ? 當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,盡可能少的匹配所搜索的字符串,例如,對于字符串”oooo”,”o+?”將匹配單個”o”
- . 匹配除”\r\n”之外的任何單個字符,要匹配包括”\r\n”在內的任何字符,請使用像”[\s\S]”的模式。
- x|y 匹配x或y “z|food”能匹配”z”或”food”或”zood”
- [xyz] 匹配所包含的任意一個字符 例如,”[abc]”可以匹配”plain”中的”a”。
- [^xyz] 匹配未包含的任意字符 例如,”[^abc]”可以匹配”plain”中的”plin”。
- [a-z] 匹配指定范圍內的任意字符
- [^a-z] 匹配任何不在指定范圍內的任意字符
- \b 匹配一個單詞邊界 例如,”er\b”可以匹配”never”中的”er”,但不能匹配”verb”中的”er”。
- \B 匹配非單詞邊界?!眅r\B”能匹配”verb”中的”er”,但不能匹配”never”中的”er”。
- \cx 匹配由x指明的控制字符。例如,\cM匹配一個Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個原義的“c”字符。
- \d 匹配一個數字字符。等價于[0-9]。
- \D 匹配一個非數字字符。等價于[^0-9]。
- \f 匹配一個換頁符。等價于\x0c和\cL。
- \n 匹配一個換行符。等價于\x0a和\cJ。
- \r 匹配一個回車符。等價于\x0d和\cM。
- \s 匹配任何不可見字符,包括空格、制表符、換頁符等等。等價于[ \f\n\r\t\v]。
- \S 匹配任何可見字符。等價于[^ \f\n\r\t\v]。
- \t 匹配一個制表符。等價于\x09和\cI。
- \v 匹配一個垂直制表符。等價于\x0b和\cK。
- \w 匹配包括下劃線的任何單詞字符。這里的”單詞”字符使用Unicode字符集。
- \W 匹配任何非單詞字符。等價于“[^A-Za-z0-9_]”。
- \< \ > 匹配詞(word)的開始(\<)和結束(\ >)。例如正則表達式\< the\ >能夠匹配字符串”for the wise”中的”the”,但是不能匹配字符串”otherwise”中的”the”。注意:這個元字符不是所有的軟件都支持的。
- | 將兩個匹配條件進行邏輯“或”(Or)運算。
- (pattern) 匹配 pattern 并捕獲該匹配的子表達式??梢允褂?$0…$9 屬性從結果”匹配”集合中檢索捕獲的匹配。若要匹配括號字符 ( ),請使用”\(“或者”\)”
- (?:pattern) 執行正向預測先行搜索的子表達式,該表達式匹配處于匹配 pattern 的字符串的起始點的字符串。它是一個非捕獲匹配,即不能捕獲供以后使用的匹配。例如,”Windows (?=95|98|NT|2000)” 匹配”Windows 2000”中的”Windows”,但不匹配”Windows 3.1”中的”Windows”。預測先行不占用字符,即發生匹配后,下一匹配的搜索緊隨上一匹配之后,而不是在組成預測先行的字符后。
- (?!pattern) 執行反向預測先行搜索的子表達式,該表達式匹配不處于匹配 pattern 的字符串的起始點的搜索字符串。它是一個非捕獲匹配,即不能捕獲供以后使用的匹配。例如,”Windows (?!95|98|NT|2000)” 匹配”Windows 3.1”中的 “Windows”,但不匹配”Windows 2000”中的”Windows”。預測先行不占用字符,即發生匹配后,下一匹配的搜索緊隨上一匹配之后,而不是在組成預測先行的字符后.
轉載于:https://www.cnblogs.com/feiZhou/p/9344426.html
總結
以上是生活随笔為你收集整理的正则表达式的基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习笔记5-1——多线程
- 下一篇: 几款好看的css表格