golang 跨行正则匹配?

<div><p class='block_paragraph'>
Заказ завершен
06.08.2023.

</p>

麻烦请问用golang的正则怎么把p标签的文本内容取出来,谢谢

补充,上边代码只是html一部分,

<input name='js-captcha__session' type='hidden'>
<input name='close-session-form' type='hidden' value='false'>
</div>


<div class='wrapp-orders-text'>
<div class='orders-info'>

<div><p class='block_paragraph'>
Заказ завершен
06.08.2023.

</p>
<p class='block_paragraph'>Груз выдан.</p>
</div>
</div>
阅读 2.6k
2 个回答

用这个库HTML 解析库:golang.org/x/net/html

以下一个 demo 程序

package main

import (
    "fmt"
    "regexp"
)

func main() {
    html := `
<div><p class='block_paragraph'>
Заказ завершен
06.08.2023.

</p>
<p class='block_paragraph'>Груз выдан.</p>
</div>
`

    re := regexp.MustCompile(`<p class='block_paragraph'>(.*?)<\/p>`)
    matches := re.FindAllStringSubmatch(html, -1)

    for _, match := range matches {
        if len(match) > 1 {
            fmt.Println(match[1])
        }
    }
}

不过正则表达式并不是解析 HTML 的最佳方式。HTML 是一个复杂的嵌套结构,可能会有许多边缘情况。了解下这个库 golang.org/x/net/html。

推荐问题