go的正则匹配换行和js不一样吗?
tetsdfdsf
## Contents
- [test](#test)
- [Contents](#contents)
- [test2](#test2)
- [fdf and dfdf](#dfdf-and-dffd)
- [dfdf](#dfdf)
- [dfdf Building](#dfdf-building)
- [Build dfdf](#build-dfdf)
- [dfdf Line](#df-dfd)
- [dfd dfdf dfd](#advanced-console-dfd)
- [dfdf dfdf](#standard-cli)
- [dfdf](#configuration)
- [Continuous Integration](#continuous-integration)
- [dddd Preprocessors](#dddd-preprocessors)
**[⬆ back to top](#contents)**
上面这段文本,我用这个正则Contents\n\n(.|\n)+?\n\n
匹配中间的内容。
用网页版的在线正则测试是可以匹配出来中间的结果的,用go正则结果却是空的,什么问题?
var matchMenu = regexp.MustCompile(`Contents\n\n(.|\n)+?\n\n`)
menuData := matchMenu.FindSubmatch(getContent())
slog.Info(fmt.Sprintf("%#v", menuData))
输出结果:2023/10/25 17:53:04 INFO [][]uint8(nil)
问问这什么差异?
回复
1个回答
test
2024-06-25
又没有可能是你的getContent()
内容未转译?
我按照你的方式在本地直接使用字符串是可以匹配的;
package main
import (
"fmt"
"regexp"
)
func main() {
const str = `tetsdfdsf
## Contents
- [test](#test)
- [Contents](#contents)
- [test2](#test2)
- [fdf and dfdf](#dfdf-and-dffd)
- [dfdf](#dfdf)
- [dfdf Building](#dfdf-building)
- [Build dfdf](#build-dfdf)
- [dfdf Line](#df-dfd)
- [dfd dfdf dfd](#advanced-console-dfd)
- [dfdf dfdf](#standard-cli)
- [dfdf](#configuration)
- [Continuous Integration](#continuous-integration)
- [dddd Preprocessors](#dddd-preprocessors)
**[⬆ back to top](#contents)**
`
reg := regexp.MustCompile(`Contents\n\n(.|\n)+?\n\n`)
fmt.Printf("%#v", reg.FindSubmatch([]byte(str))[0])
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容