Go 的 regexp 模块在流处理方面存在不足——几乎所有方法都需要字符串或 [] 字节。 regexpscanner 模块可以轻松提取与正则表达式模式匹配的标记。
https://pkg.go.dev/github.com/tonymet/regexpscanner
go get github.com/tonymet/regexpscanner@latest
当需要一个简单的基于回调的流标记生成器时,使用 ProcessTokens 。
ProcessTokens 为扫描器中的每个匹配令牌调用 handler(string)。
package main import ( "fmt" "regexp" "strings" rs "github.com/tonymet/regexpscanner" ) func main() { rs.ProcessTokens( strings.NewReader("<html><body><p>Welcome to My Website</p></body></html>"), regexp.MustCompile(`</?[a-z]+>`), func(text string) { fmt.Println(text) }) }
<html> <body> <p> </p> </body> </html>
尝试一下并查看 Go 模块页面以获取更多示例
以上是流式正则表达式扫描器 — regexpscanner的详细内容。更多信息请关注PHP中文网其他相关文章!