1 回答
TA贡献1856条经验 获得超5个赞
您需要使用捕获组来捕获该句子的内容:
package main
import "fmt"
import "regexp"
func main() {
str := `
* * *
Match this line
`
r, _ := regexp.Compile(`\* \* \*\n.*\n(.*)`)
fmt.Println(r.FindStringSubmatch(str)[1])
}
输出:
Match this line
解释:
\* \* \* Matches the first line containing the asterisks.
\n A newline.
.* Second line. Can be anything (Likely the line is simply empty)
\n A newline
( Start of capturing group
.* The content of interest
) End of capturing group
在评论中,您询问如何将第三行替换为<hr/>. 在这种情况下,我将使用两个捕获组 - 一个用于感兴趣线之前的部分,另一个用于线本身。在替换模式中,您可以使用$1结果中的第一个捕获组的值。
例子:
package main
import "fmt"
import "regexp"
func main() {
str := `
* * *
Match this line
`
r, _ := regexp.Compile(`(\* \* \*\n.*\n)(.*)`)
str = string(r.ReplaceAll([]byte(str), []byte("$1<hr/>")))
fmt.Println(str)
}
- 1 回答
- 0 关注
- 202 浏览
添加回答
举报