1. 程式人生 > >【學習心得】正則表示式小結

【學習心得】正則表示式小結

 

---------------------- android培訓java培訓、期待與您交流! ----------------------

 畢老師講解的正則表示式是利用在java.lang.String類中的matches(String regex)方法(匹配)split(String regex)
方法(切割)replaceAll(String regex, String replacement)
方法(替換),這些方法在字串進行這些操作還是比較方便的;同時java.util.regex包下還有關於正則表示式應用的類,該包只有兩個類Matcher和Pattern,一個介面MatchResult。個人覺得正則表示式就是建立一個字元標準,再拿另一個字串和這個標準比較,,說白了正則表示式就是這個標準字串。思想上,正則表示式還是很簡單的,但是它的效率是驚人的,畢老師演示的例子就是很好的解釋。
     正則表示式是利用普通字元和特殊字元結合來產生匹配標準的,java中提供了相當靈活的匹配,所以這也是正則表示式能廣泛提高匹配效率的。畢老師講解的利用一些方法來說明正則表示式理解起來還是比較簡單的。一下是一些常見的正則表示式的特殊符號
x 字元 x
\\ 反斜線字元
\0n 帶有八進位制值 0 的字元 n (0 <= n <= 7)
\0nn 帶有八進位制值 0 的字元 nn (0 <= n <= 7)
\0mnn 帶有八進位制值 0 的字元 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 帶有十六進位制值 0x 的字元 hh
\uhhhh 帶有十六進位制值 0x 的字元 hhhh
\t 製表符 ('\u0009')
\n 新行(換行)符 ('\u000A')
\r 回車符 ('\u000D')
\f 換頁符 ('\u000C')
\a 報警 (bell) 符 ('\u0007')
\e 轉義符 ('\u001B')
\cx 對應於 x 的控制符
 
字元類
[abc] a、b 或 c(簡單類)
[^abc] 任何字元,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去)
 
預定義字元類
. 任何字元(與行結束符可能匹配也可能不匹配)
\d 數字:[0-9]
\D 非數字: [^0-9]
\s 空白字元:[ \t\n\x0B\f\r]
\S 非空白字元:[^\s]
\w 單詞字元:[a-zA-Z_0-9]
\W 非單詞字元:[^\w]
 
POSIX 字元類(僅 US-ASCII)
\p{Lower} 小寫字母字元:[a-z]
\p{Upper} 大寫字母字元:[A-Z]
\p{ASCII} 所有 ASCII:[\x00-\x7F]
\p{Alpha} 字母字元:[\p{Lower}\p{Upper}]
\p{Digit} 十進位制數字:[0-9]
\p{Alnum} 字母數字字元:[\p{Alpha}\p{Digit}]
\p{Punct} 標點符號:!"#$%&'()*+,-./:;<=>

[email protected][\]^_`{|}~
\p{Graph} 可見字元:[\p{Alnum}\p{Punct}]
\p{Print} 可列印字元:[\p{Graph}\x20]
\p{Blank} 空格或製表符:[ \t]
\p{Cntrl} 控制字元:[\x00-\x1F\x7F]
\p{XDigit} 十六進位制數字:[0-9a-fA-F]
\p{Space} 空白字元:[ \t\n\x0B\f\r]
 
java.lang.Character 類(簡單的 java 字元型別)
\p{javaLowerCase} 等效於 java.lang.Character.isLowerCase()
\p{javaUpperCase} 等效於 java.lang.Character.isUpperCase()
\p{javaWhitespace} 等效於 java.lang.Character.isWhitespace()
\p{javaMirrored} 等效於 java.lang.Character.isMirrored()
 
Unicode 塊和類別的類
\p{InGreek} Greek 塊(簡單塊)中的字元
\p{Lu} 大寫字母(簡單類別)
\p{Sc} 貨幣符號
\P{InGreek} 所有字元,Greek 塊中的除外(否定)
[\p{L}&&[^\p{Lu}]]  所有字母,大寫字母除外(減去)
 
邊界匹配器
^ 行的開頭
$ 行的結尾
\b 單詞邊界
\B 非單詞邊界
\A 輸入的開頭
\G 上一個匹配的結尾
\Z 輸入的結尾,僅用於最後的結束符(如果有的話)
\z 輸入的結尾
 
Greedy 數量詞
X? X,一次或一次也沒有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超過 m 次
 
Reluctant 數量詞
X?? X,一次或一次也沒有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超過 m 次
 
Possessive 數量詞
X?+ X,一次或一次也沒有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超過 m 次
 
Logical 運算子
XY X 後跟 Y
X|Y X 或 Y
(X) X,作為捕獲組
 
Back 引用
\n 任何匹配的 nth 捕獲組
 
引用
\ Nothing,但是引用以下字元
\Q Nothing,但是引用所有字元,直到 \E
\E Nothing,但是結束從 \Q 開始的引用
 
特殊構造(非捕獲)
(?:X) X,作為非捕獲組
(?idmsux-idmsux)  Nothing,但是將匹配標誌i d m s u x on - off
(?idmsux-idmsux:X)   X,作為帶有給定標誌 i d m s u x on - off
的非捕獲組  (?=X) X,通過零寬度的正 lookahead
(?!X) X,通過零寬度的負 lookahead
(?<=X) X,通過零寬度的正 lookbehind
(?<!X) X,通過零寬度的負 lookbehind
(?>X) X,作為獨立的非捕獲組


---------------------- android培訓java培訓、期待與您交流! ---------------------- 詳細請檢視:http://edu.csdn.net/heima

相關推薦

學習心得表示式小結

  ---------------------- android培訓、java培訓、期待與您交流! ----------------------  畢老師講解的正則表示式是利用在java.lang.String類中的matches(String regex)方法(匹配)sp

JS學習筆記表示式

1,符號標記組一 ^:位於字串開頭,表示非 $:位於字串結束,正則分組(),$1 var myString1 = "2012,2013,2014"; var theRegExp = /(\d{4})/g; //()分組標記$1 var myStri

程式語言學習——python表示式小作業

參考資料 https://www.cnblogs.com/tina-python/p/5508402.html 原資料 目標 將如上混雜在一列的資料按特徵分隔開。 程式碼 import xlrd import xlwt xlsfile=r'C:\Users\Ad

Linux學習表示式

環境  虛擬機器:VMware 10   Linux版本:CentOS-6.5-x86_64   客戶端:Xshell4  FTP:Xftp4 一、grep:顯示匹配行v:反顯示e:使用擴充套件正則表示式E:不使用正則表示式 匹配操作符 \ 轉義字元 . 匹配任意單個字元 [1249a],[^12],[a

爬蟲學習1表示式加Requests爬取貓眼電影排行

Requests獲取網頁資料 運用Requests獲得網頁 import requests ##獲取單個網頁資料 def get_one_page(url): response = requests.get(url) r

PHP篇表示式

$rex=”/gg*d/i”表示匹配到g(G)開始d(D)結束且中間只能有G(D)出現任意次,不區分大小寫   1、  定界符號:(1)/ 內容 / (2)|| (3){  } (4)等除字母、數字、“\”以外的字元//必須成對出現   2、  內容裡

速記表格表示式

正則表示式由一些普通字元和一些元字元(metacharacters)組成。普通字元包括大小寫的字母和數字,而元字元則具有特殊的含義,我們下面會給予解釋。 在最簡單的情況下,一個正則表示式看上去就是一個普通的查詢串。例如,正則表示式"testing"中沒有包含任何元字元,它可以匹配"testi

學習筆記

正如我們之前在《深入淺出的資料分析》中的筆記提到過的一樣,一個迴歸模型兼具 解釋功能和預測功能。 解釋功能就是對當前的資料進行擬合,而預測功能則是對未出現的資料進行預測。 在一個神經網路模型中我們同樣也可以設定我們的側重點: 如果讓模型具有更強的解釋功能,我們就需要mi

PHP基礎表示式

<?php //功能:將文字中的連結地址轉成HTML //輸入:字串 //輸出:字串 function url2html($text) { //匹配一個URL,直到出現空白為止 preg_match_all("/http:\/\/?[^\s]+/i", $text, $links

解決方案表示式判斷字串是否全是空格

用正則表示式實現: var test = "   \n   "; //var test = "      "; if(test.match(/^\s+$/)){     console.log("all space or \\n") } if(test.match(/^

C#拾遺——表示式RegEx

前提     公司內部推行安全制度,要求密碼必須是八位以上,而且必有至少包含一個小寫或者大寫字母,數字,特殊字元,面對這樣的密碼,感覺領導也是夠操心的了啊。在公司小編真是閒啊,所以動手實現了一下,後來

選擇器小結表示式、XPath選擇器、CSS選擇器小結和使用場景

$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&

PHP表示式判斷網址是否帶http://或https://

// 匹配http(s)的表示式 $preg = "/^http(s)?:\\/\\/.+/"; 示例: $url = "https://www.baidu.com/"; $preg = "/^http(s)?:\\/\\/.+/"; if(preg_match($preg,$

PHP表示式匹配標籤

// 匹配<img>標籤的表示式 $preg = "/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/i"; 示例: $img='<div class="div">

PHP表示式匹配最後一張圖片並替換

// 要搜尋的內容 $content = '<div class="div"><img class="img" width="200" height="100" src="./../images/img1.jpg" /> <img class="img" w

表示式–零寬斷言詳解

零寬斷言的意思是(匹配寬度為零,滿足一定的條件/斷言) 我也不知道這個詞語是那個王八蛋發明的,簡直是太拗口了。  零寬斷言用於查詢在某些內容(但並不包括這些內容)之前或之後的東西,也就是說它們像\b,^,$那樣用於指定一個位置,這個位置應該滿足一定的條件(即斷言),因此它

spider03表示式

什麼是正則表示式 正則表示式是對字串操作的一種邏輯公式,就是用實現定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。 非Python獨有,re模組實現 常見匹配模式 ^ 匹配字串的開頭 $ 匹配字串

135.Python修煉之路140-前端-JQuery-表示式2018.08.04

正則表示式 1、什麼是正則表示式:  能讓計算機讀懂的字串匹配規則。 2、正則表示式的寫法: var re=new RegExp('規則', '可選引數'); var re=/規則/引數; 3、規則中的字元  1)普通字元匹配: 如:/a/ 匹配字元 ‘a’,/a,b

十分鐘學會表示式字元匹配攻略

閱讀建議:看一下正則表示式基礎,有一定的基本概念,效果最佳。 正則表示式是匹配模式,要麼匹配字元,要麼匹配位置。請記住這句話。 然而關於正則如何匹配字元的學習,大部分人都覺得這塊比較雜亂。 畢竟元字元太多了,看起來沒有系統性,不好記。本

Python表示式-簡單示例

最近使用Python正則表示式處理資料較多,先將Python使用正則表示式匹配文字的示例程式整理一下。 基本語法 基本語法與變數使用參考一下兩個網站: 示例程式 從檔案中