正則表達式(Regular Expression武鲁,通常簡寫為Regex或RE),又稱規(guī)則表達式蝠检。
正則表達式是對字符串進行過濾的一種公式沐鼠,主要由具有特定意義的字符組成。我們一般把這種特定意義的字符稱為元字符。正則表達式通常被用來檢索或替換符合某個規(guī)則的文本饲梭。
那么常見的元字符有哪些呢乘盖?在我這里把常見的元字符歸為以下幾組:
第一組:格式組(匹配換行、回車等格式類符號)
| 元字符 | 解釋說明 |
| \n | 匹配換行符 |
| \r | 匹配回車符 |
| \t | 匹配制表符 |
| \f | 匹配換頁符 |
比如替換掉下面中的換行符:
第二組:叫板組(你說A排拷,我就偏不說A)
| 元字符 | 解釋說明 |
| \n | 匹配換行符 |
| . | 匹配除換行符外的任意字符 |
| \s | 匹配任何空白字符 |
| \S | 匹配任何非空白字符 |
| \w | 匹配字母侧漓、數(shù)字、下劃線 |
| \W | 匹配除字母监氢、數(shù)字布蔗、下劃線以外的任意字符 |
| \d | 匹配數(shù)字 |
| \D | 匹配除數(shù)字以外的任意字符 |
| [] | 匹配括號內(nèi)的任意字符 |
| [0-9] | 匹配數(shù)字,等價于\d |
| [A-Za-z] | 匹配英文字母 |
| [\u4e00-\u9fa5] | 匹配漢字 |
| [^] | 匹配除^號后字符以外的任意字符 |
| [^abc] | 匹配除了abc以外的任意字符 |
當然他們之間也可以組合起來浪腐,比如其中的\s和\S組合起來:[\s\S]纵揍,就是匹配所有字符,其他組類似议街。
第三組:限定組(限定匹配的次數(shù))
| 元字符 | 解釋說明 |
| * | 匹配前面元字符0次或多次 |
| + | 匹配前面元字符1次或多次 |
| 泽谨? | 匹配前面元字符0次或1次 |
| {m} | 匹配前面元字符m次 |
| {m,} | 匹配前面元字符至少m次 |
| {m,n} | 匹配前面元字符m到n次,包含m和n |
比如匹配4個數(shù)字:
第四組:位置組(表示符號的位置)
| 元字符 | 解釋說明 |
| \b | 表示單詞的開始或結(jié)尾位置(注意只表示位置特漩,不代表任何字符) |
| \B | 表示非單詞的開始或結(jié)尾位置(同上) |
| ^ | 表示字符串的開始位置(同上) |
| $ | 表示字符串的結(jié)尾位置(同上) |
比如匹配以0結(jié)尾的數(shù)據(jù):
第五組:斷言組(假設(shè)滿足一定的條件)
| 元字符 | 解釋說明 |
| (?=abc) | 匹配abc前面的字符 |
| (?<=abc) | 匹配abc后面的字符 |
| (?<!abc) | 匹配前面不是abc的字符 |
| (?!abc) | 匹配后面不是abc的字符 |
比如匹配abc前的所有字符:
第六組:子表達式及其他組(和子表達式相關(guān)的吧雹,以及其他常用的元字符)
| 元字符 | 解釋說明 |
| () | 通常表示一個完整的表達式(也叫做子表達式),可將匹配的內(nèi)容保存下來涂身,以供后續(xù)使用 |
| \1 | 引用前面第1個子表達式保存的文本雄卷,\2\3\4...同理 |
| | | 表示或的關(guān)系,比如a|b表示a或者b |
| \ | 轉(zhuǎn)義字符蛤售,比如\n表示匹配\n這個符號 |
比如刪除下面字符中的重復項:
小測驗
在EXCEL中使用正則表達式對字符串:“單芯片,雙芯片,單芯片,雙芯片,四芯片,單芯片”進行刪除重復項:“雙芯片,四芯片,單芯片”丁鹉。
若想獲取答案,請在公眾耗【轉(zhuǎn)行學數(shù)據(jù)分析】后臺回復:正則小測驗