2015-11-18 44 views
-3

可以解釋爲什麼匹配playgolang regexp.matchString有什麼問題?

來源:

package main 

import "fmt" 
import "regexp" 

func main() { 
    match, _ := regexp.MatchString("[a-z]+", "test?") 
    fmt.Printf("the result of match: %v", match) 
} 

不是golang的regexp.MatchString完全匹配?我不明白,我是golang的新手

+3

*不是golang的regexp.MatchString完全匹配嗎?*不,它不是。 –

+0

有沒有完全匹配的功能? – toolchainX

+0

只需在表達式中添加錨點:'^ [a-z] + $' –

回答

2

正則表達式「[a-z] +」將匹配「test」是搜索文本「test?」。
同樣,它將匹配「測試測試」,「2001 一個空間oddessy」等

轉到郎regexp package比賽根據語法意義的正則表達式搜索文本。沒有一種方法本身試圖將正則表達式與整個搜索文本進行匹配,如果不能,則放棄,除非正則表達式定義整個搜索文本匹配是所需的行爲。

正則表達式的語法確實可以匹配整個搜索文本。

'^',正則表達式開始處的起始錨點符號強制匹配包含搜索文本的開頭。
'$',正則表達式末尾的末尾錨點符號強制匹配以包含搜索文本的末尾。
它們在正則表達式中的其他位置具有不同的含義。

由於@TomCooper評論說,圍繞您正在尋找的正則表達式模式使用開始和結束錨點。這些將封閉的正則表達式定位到搜索文本的開頭和結尾,以確保整個搜索文本與正則表達式匹配。

+0

謝謝,很好地解釋了 – toolchainX

+0

@toolchainX - 謝謝!你的問題對我來說似乎是合理的,所以我並不真正理解沒有任何與現有答案或網絡鏈接的倒票。使用Go祝你好運;恕我直言,這是一個可愛的語言。 – gbulmer