\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