正則表達式入門(一)經常使用元字符

經常使用元字符

  • 例子: hi, what are you doing? candy?

\b 匹配單詞的開始處或結尾處

如何正確的匹配hi?咱們可使用\bhi來匹配,可是若是要匹配的單詞是: him,high,hidden等單詞,那麼使用\bhi就不能精確匹配出hi,因此咱們可使用\bhi\b該方式精確匹配出hi,該正則表達式理解爲,匹配以h開始而且以i結束的詞。正則表達式

. 匹配除了換行符之外的任意字符

上面的列子精確的匹配了hi,可是如今又新增一個需求,想要匹配hi以及後面的candy。因而想到了使用\bhi\b.\bcandy\b來匹配,可是該語法有個限制,只能匹配一個字符,好比只能匹配hi,candy、hi1candy這種相似的字符,但沒法匹配hi, what are you doing? candy? 這樣的字符,匹配的數量有限制。spa

<span id="jump"></span>code

爲了解決.只能一個任意字符的問題,咱們能夠將*.聯合使用,寫出這樣的表達式\bhi\b.*\bcandy\b,該表達式語義爲: 匹配以h開頭i結尾且中間爲除換行符之外的任意字符,且可連續匹配該字符任意次,以後以cand開始以y結束的內容。字符串

\d 匹配數字

如今咱們有一個需求,要求匹配以15開頭的手機號,如:15XXXXXXXXX 咱們可使用\d寫出15\d\d\d\d\d\d\d\d\d這樣的表達式。可是這樣寫比較麻煩;咱們能夠改爲這樣: 15\d{9},該表達式表示: 匹配15以後的任意9個數字。語法

^匹配字符串的開始處,$ 匹配字符串的結束處。

上面的例子雖然能夠匹配15開頭的手機號,可是若是咱們輸入as15111111111sd這樣的也能被匹配到,是由於咱們沒有作限制,如今咱們就對上面的表達式改進爲: ^15\d{9}$im

解除元字符限制

當咱們想使用元字符自己的時候,可使用\對元字符進行轉義,好比我相匹配www.baidu.com,咱們可使用www\.baidu\.com進行轉義匹配,此外還好比匹配計算機盤符:D:\\User對應的是D:\User。其餘元字符也是如此: 好比使用*能夠換成\*數據

限定符

* 前面的內容能夠連續重複0次或任意次數,最終使得整個表達式得以匹配

上面已經有例子講過的例子: 用*進行匹配計算機

+ 前面的內容能夠連續重複至少1次或任意次數,最終使得整個表達式得以匹配

使用hi, what are you doing? candy?的例子,咱們要匹配包含hi開始,並以candy結束的單詞。能夠這樣寫: ^\bhi\b.+\bcandy\b$。該表達式能夠匹配hi, what are you doing? candy?這樣的詞組,可是沒法匹配hicandy這樣的詞組。由於+的規則是至少是匹配重複的1次。 若是要匹配數字呢?好比匹配15開頭的數據,能夠這樣寫:15\d+co

相關文章
相關標籤/搜索