package main
import (
"fmt"
"regexp"
)
func main() {
r, _ := regexp.Compile(`OWASP_CSRFTOKEN:([a-zA-Z0-9\-]+)`)
str := "OWASP_CSRFTOKEN:A-a-**\n**9-!OWASP_CSRFTOKEN:B-b-8-"
fmt.Printf("%q\n", r.FindString(str))
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试匹配一个模式。注意变量\n中str。OWASP_CSRFTOKEN:([a-zA-Z0-9\-]+)由于\n变量,我无法匹配该模式str。
我期望匹配的字符串是OWASP_CSRFTOKEN:A-a-9-,但我得到了匹配,OWASP_CSRFTOKEN:A-a-因为9-是之后\n
尝试多行模式:
m标志package main
import (
"fmt"
"regexp"
)
func main() {
r, _ := regexp.Compile("(?m)OWASP_CSRFTOKEN:([a-zA-Z0-9*-]+)")
str := "OWASP_CSRFTOKEN:A-a-**\n**9-!OWASP_CSRFTOKEN:B-b-8-"
fmt.Printf("%q\n", r.FindString(str))
}
Run Code Online (Sandbox Code Playgroud)
输出:
"OWASP_CSRFTOKEN:A-a-**"
Run Code Online (Sandbox Code Playgroud)
\n打开spackage main
import (
"fmt"
"regexp"
)
func main() {
r, _ := regexp.Compile("(?s)OWASP_CSRFTOKEN:([a-zA-Z0-9*\n-]+)")
str := "OWASP_CSRFTOKEN:A-a-**\n**9-!OWASP_CSRFTOKEN:B-b-8-"
fmt.Printf("%q\n", r.FindString(str))
}
Run Code Online (Sandbox Code Playgroud)
输出:
"OWASP_CSRFTOKEN:A-a-**\n**9-"
Run Code Online (Sandbox Code Playgroud)
(我还添加了*允许的字符)