1

我试图在下面找到这个非常简单的字符串的正则表达式。

我不知道该怎么做。

考虑:

A.B.C.MSI_AlphaName
C.D.E.MSI_AlphaName_1
X.Y.Z.MSI_AlphaName_2
...
MSI_AlphaName_99

等等。鉴于我需要提取,这将是什么正则表达式AlphaName

我试过了:

.+\.MSI_(.+)(?:_\d+)?
4

2 回答 2

3

我会使用这个表达式:

MSI_([^_]+)(?:_|$)

捕获组将匹配第一个下划线之后一直_到第二个下划线或结尾或字符串的所有内容,以先到者为准。

于 2013-06-29T00:56:37.597 回答
0

而不是 .+ ,您将希望匹配[^_](不是的字符集"_"),除非您想要第一个“_”之后的所有内容

所以你的表达应该是这样的:

.+\.MSI_([^_]+)(?:_\d+)?
于 2013-06-29T00:57:09.473 回答