gpt4 book ai didi

regex - 当有换行符时,如何在多行上匹配Golang正则表达式?

转载 作者:行者123 更新时间:2023-12-01 21:09:35 29 4
gpt4 key购买 nike

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))
}
我正在尝试匹配一个模式。注意 \n变量中的 str
由于 OWASP_CSRFTOKEN:([a-zA-Z0-9\-]+)变量中的 \n,我无法匹配 str模式。
我希望匹配的字符串是 OWASP_CSRFTOKEN:A-a-9-,但是我得到了 OWASP_CSRFTOKEN:A-a-的匹配项,因为 9-\n之后

最佳答案

尝试多行模式:

  • https://golang.org/pkg/regexp/syntax/-打开我的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))
    }
    输出:
    "OWASP_CSRFTOKEN:A-a-**"
  • 或允许\n匹配为任何字符-使用s标志
  • 打开
    package 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))
    }
    输出:
    "OWASP_CSRFTOKEN:A-a-**\n**9-"
    (我还添加了 *作为允许的字符)

    关于regex - 当有换行符时,如何在多行上匹配Golang正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62986403/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com