我使用go 1.8.3和I想使用正則表達式包從"1234abcd"
得到"123"
。當我使用regexp.Compile("^123(?:4)")
時,它來到"1234"
。我使用regexp.Compile(`^ 123(?:4)`)嘗試從「1234abcd」中獲得「123」,而它出現爲「1234」
編碼在此:https://play.golang.org/p/jB7FmxWz9r
package main
import (
"regexp"
"fmt"
)
func main() {
test, err := regexp.Compile(`^123(?:4)`)
if err != nil {
fmt.Println(err)
return
}
input := "1234|wserw"
fmt.Println(test.FindString(input))
}
出來:1234
預期:123
根據
感謝您的回答捕捉到它,但是當我使用regexp.Compile(\'^ 1234(?:\\ |)\'),它出來是「1234」而沒有「|」從「1234 | abcd」,那麼有什麼區別? – yingqin
是這樣的:https://play.golang.org/p/0kVDUx1gOw – yingqin
@yingqin \\匹配一個組中的\和'|'會做一個正則表達式OR。所以這個'(?:\\ |)'會匹配\或空字符串。這個'(?:\ |)'完全匹配一個'|'管道符號。 –