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.4k
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。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题