我是 RE2 语法正则表达式的新手,我想匹配特定字符串之后的第一个单词。例如:java.lang.OutOfMemoryError: Java heap space
Error sending periodic eventjava.lang.NullPointerException: Java heap space
Error sending periodic event我想捕捉之后发生的任何事情,这样java.lang.我就可以得到错误。我知道在 Python 和 PCRE 中,我们可以使用积极的后视来做到这一点,而正则表达式将是 - ,但这不适用于 RE2。OutOfMemoryErrorNullPointerException(?<=java.lang.).*?(?=\s)
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
您可以使用
java\.lang\.([^\s:]+)
细节
java\.lang\.
- 一个java.lang.
子串([^\s:]+)
- 捕获组 1:除空格和 . 之外的一个或多个字符:
。
注意:如果您需要在空格之间获取所有文本java.lang.
并:
后跟空格,请使用java\.lang\.(.*?):\s
.
package main
import (
"fmt"
"regexp"
)
func main() {
regex := regexp.MustCompile(`java\.lang\.([^\s:]+)`)
result := regex.FindStringSubmatch("java.lang.OutOfMemoryError: Java heap space Error sending periodic event")
fmt.Printf("%q", result[1])
}
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消