我正試圖在下面找到這個非常簡單字符串的正則表達式。如何使用正則表達式獲取字符串的一部分
我不知道該怎麼做。
考慮:
A.B.C.MSI_AlphaName
C.D.E.MSI_AlphaName_1
X.Y.Z.MSI_AlphaName_2
...
MSI_AlphaName_99
等。這是什麼正則表達式,因爲我需要提取AlphaName
?
我曾嘗試:
.+\.MSI_(.+)(?:_\d+)?
我正試圖在下面找到這個非常簡單字符串的正則表達式。如何使用正則表達式獲取字符串的一部分
我不知道該怎麼做。
考慮:
A.B.C.MSI_AlphaName
C.D.E.MSI_AlphaName_1
X.Y.Z.MSI_AlphaName_2
...
MSI_AlphaName_99
等。這是什麼正則表達式,因爲我需要提取AlphaName
?
我曾嘗試:
.+\.MSI_(.+)(?:_\d+)?
我會用這樣的表達:
MSI_([^_]+)(?:_|$)
的捕獲組將第一個下劃線後_
一路匹配一切第二下劃線或結束或字符串,以先到者爲準。
相反的+,你將要匹配[^_]
(該組中不"_"
字符),除非你想在第一之後的所有「_」
所以,你的表情應該是這樣的:
.+\.MSI_([^_]+)(?:_\d+)?
謝謝。這也解決了它。 – p0lAris
我想MSI以及問題中提到的。 – p0lAris
@ flippex17你說過「我需要提取'AlphaName'」。你也需要'MSI'嗎? – dasblinkenlight
哦,我需要MSI作爲限制。但我明白了:[^ _] + MSI _([^ _] +)(?:_ | $) – p0lAris