我正在嘗試創建一個正則運算式來決議特定的字串。
當前字串是abcd_1.263.0.15-8zz00df.yml,我只想決議1.263.0.15-8zz00df它。
已經嘗試過這個運算式,"_\K.*(?=\.)"但它在 Golan 中不起作用并給我模式錯誤。有人可以幫忙嗎?
uj5u.com熱心網友回復:
Go使用RE2正則運算式引擎,該引擎不支持lookaheads、lookbehinds和其他 PCRE 好東西,如\K
請參閱不同正則運算式引擎的比較。
但是,您可以使用此正則運算式:
[^_-] -[^.]
請參閱此演示。
解釋:
[^_-] # a character that is not "_" or "-", one or more times
- # a literal "-"
[^.] # a character that is not a dot, one or more times
uj5u.com熱心網友回復:
只需用一句話重新發布@mkopriva 的片段之一,
并非所有事情都需要使用正則運算式完成:
s := "abcd_1.263.0.15-8zz00df.yml"
if i := strings.IndexByte(s, '_'); i > -1 {
s = s[i 1:]
}
if i := strings.LastIndexByte(s, '.'); i > -1 {
s = s[:i]
}
fmt.Println(s)
操場
uj5u.com熱心網友回復:
編輯:您可以簡單地使用正則運算式:
_(.*)\.
在*貪婪地匹配,這意味著它會匹配一切,直到最后“” - 這正是您所需要的。您的比賽在第 1 組。
你為什么使用\K匹配器?你的正則運算式是這樣作業的:
_(.*)(?=\.)
第 1 組包含您的匹配項。
注意:測驗正則運算式的一個非常有用的工具是這個站點:https : //regexr.com/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/404460.html
標籤:
