我是 RE2 語(yǔ)法正則表達(dá)式的新手,我想匹配特定字符串之后的第一個(gè)單詞。例如:java.lang.OutOfMemoryError: Java heap space
Error sending periodic eventjava.lang.NullPointerException: Java heap space
Error sending periodic event我想捕捉之后發(fā)生的任何事情,這樣java.lang.我就可以得到錯(cuò)誤。我知道在 Python 和 PCRE 中,我們可以使用積極的后視來(lái)做到這一點(diǎn),而正則表達(dá)式將是 - ,但這不適用于 RE2。OutOfMemoryErrorNullPointerException(?<=java.lang.).*?(?=\s)
1 回答

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用
java\.lang\.([^\s:]+)
細(xì)節(jié)
java\.lang\.
- 一個(gè)java.lang.
子串([^\s:]+)
- 捕獲組 1:除空格和 . 之外的一個(gè)或多個(gè)字符:
。
注意:如果您需要在空格之間獲取所有文本java.lang.
并:
后跟空格,請(qǐng)使用java\.lang\.(.*?):\s
.
請(qǐng)參閱正則表達(dá)式演示和Go 演示:
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 關(guān)注
- 125 瀏覽
添加回答
舉報(bào)
0/150
提交
取消