我正试图在下面找到这个非常简单字符串的正则表达式。如何使用正则表达式获取字符串的一部分
我不知道该怎么做。
考虑:
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