首页 > 解决方案 > 与端线匹配的负向后看?

问题描述

我正在尝试匹配以 < 和后续文本开头的所有行,但我不想捕获 <3。在 JS 中匹配这个的正则表达式是 ^<(?!3$).*$

<3       // doesn't match
<34      // matches
<bla bla // matches

谢谢你的帮助

标签: regexgo

解决方案


如果您确实必须支持复杂的正则表达式而不必进行多次传递,您可以使用 Go 项目skybet/goback,例如确实提供扩展的正则表达式功能(与re2 语法相比扩展)

re := regexp.MustCompile(`(?<=a[0-9]{3,5})a`)
fmt.Println(re.MatchString("a12a"))     // false
fmt.Println(re.MatchString("a12345a"))  // true

但是,正如这个库中提到的:

该实现不保证线性处理时间。


推荐阅读