正規表示式學習之字元匹配

2021-10-25 07:51:40 字數 1819 閱讀 5402

給定的字串是否符合正規表示式的過濾邏輯(稱作「匹配」):

可以通過正規表示式,從字串中獲取我們想要的特定部分。

可以看出,正規表示式無論要實現過濾還是提取的功能,最基本的都是要實現匹配,當然一般就是指字元的匹配了。

首先說說第乙個轉義符「\」,顧名思義就是將原來符號的意思進行了轉換,新增之後從而可以表達其他的意思,說到第二個你就明白了。

第二個時表示一位數字的「\d」,單獨乙個字母「d」其實就是用來匹配小寫字母「d」的,但是前面加入了轉義符「\」,則「\d」的意思就不再是表示匹配乙個字母「d」了,完全變了乙個意思,就是表示一位數字。那為什麼是使用「\d」來表示一位數字呢?因為英文中數字為「digit」,當然你可能會說了「figure」和「number」也都是數字的意思,那為什麼不是使用「\f」或者「\n」來表示數字呢?我個人認為,除了「\f」和「\n」已經用來表示其他的意思了之外,「digit」這個英文單詞相較於其他兩個單詞的意思較少,更加「單純」的表示數字的意思,這也就不容易產生歧義。

第三個「\d」表示非數字,個人理解既然大寫字母中的「大」和小寫字母中的「小」是反義詞,所以既然「\d」表示了數字,而表示非數字也需要乙個符號,那麼拍腦袋時想到「\d」也就不足為奇了吧。

第四個「\w」表示數字、大小寫字母和下劃線,這是應該是對應英文中的「word」,而word通常是由大小寫字母、數字和下劃線構成的;第五個非單詞字元為「\d」自然也是和「\d」反著來的唄,

第六個「\s」表示空白符,「s」對應的是鍵盤上的space空格鍵。

對於「.」表示萬用字元但是不能表示換行回車等,如果我們要想匹配包含換行回車等符號,這個時候我們可以使用[\s\s]來表示。

unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案,而一般我們使用十六進製制來書寫unicode(因為若使用二進位制的話長度可能會很長),這個時候,前面的「\u」就比較好理解了,就是unicode的首字母小寫嘛。

換頁符使用「\f」主要應該是因為換頁符的英文表達為「form feed character」。

換行符使用「\n」的主要原因猜測可能是應為下一行的英文表達是「next line」吧,因為換行這個操作其實早在電腦發明之前的印表機時代就已經有了,所以個人覺得還是路徑依賴吧,雖然今天的換行符英文叫「line break」,但是也不使用「\l」而是採用了「next line」中「next」的首字母「n」組成的「\n」來表示換行符。

回車符使用「\r」就比較好理解了,回車符是「carriage return」,取的是「return」中的首字母「r」來構成回車符「\r」。

水平製表符使用「\t」也是比較好理解的,我們的電腦的製表鍵就是「tab」,取其首字母「t」也就不奇怪了。

垂直製表符使用「\v」主要是垂直的英文表達為「vertical」。

null字元使用「\0」表達主要還是為了和其本身的意義貼近,畢竟我們的認識中0某種程度上就是空嘛。

退格使用「[\b]」的主要原因是退格鍵就是電腦上的「backspace」,但是由於「\b」已經表示了其他的意思了,為了區分,所以才加了中括號的。

至於「[abc]」表示匹配「a」、「b」、「c」中的某乙個字母,這個就比較容易理解了,需要注意的是正規表示式中的中括號「」表示其中的字元是或的關係,並且只匹配其中的乙個。

「[^abc]」表示匹配除「a」、「b」、「c」之外的任一乙個字元。符號「^」在中括號「」裡面就表示「非」的意思,但是如果是在其他位置,則表示的是「首部」的意思,也就是匹配乙個字串的開頭,換句話說就是看乙個字串的開頭滿不滿足「^」後面的條件。

當然中括號「」除了可以將各個「或」關係的字元一一列出來,還可以劃定乙個範圍,比如「[a-g]」就表示匹配小寫字母「a」到「g」之間任意乙個字元,大些同理,當然除了字母,還可以匹配數字,比如「[1-5]」表示匹配數字「1」到「5」之間的任一乙個數字。

正規表示式字元匹配

普通字元由所有那些未顯式指定為元字元的列印和非列印字元組成。這包括所有的大寫和小寫字母字元,所有數字,所有標點符號以及一些符號。最簡單的正規表示式是乙個單獨的普通字元,可以匹配所搜尋字串中的該字元本身。例如,單字元模式 a 可以匹配所搜尋字串中任何位置出現的字母 a 這裡有一些單字元正規表示式模式的...

正規表示式入門之字元匹配

在前段時間進行文字挖掘練習的時候,不會使用正規表示式,深感不宜。所以這裡,我想趕緊學習一下正規表示式。注 本文是對 正規表示式必知必會 的複習。正規表示式是一些用來匹配和處理文字的字串,正規表示式語言用來構造正規表示式 最終構造出的字串就成為正規表示式 正規表示式語言並不是一種完備的程式語言,它甚至...

正規表示式匹配字元含義

正規表示式有多種不同的風格。下表是在pcre中元字元及其在正規表示式上下文中的行為的乙個完整列表 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了r...