我试图在下面找到这个非常简单的字符串的正则表达式。
我不知道该怎么做。
考虑:
A.B.C.MSI_AlphaName
C.D.E.MSI_AlphaName_1
X.Y.Z.MSI_AlphaName_2
...
MSI_AlphaName_99
等等。鉴于我需要提取AlphaName
,这将是什么样的正则表达式?
我试过了:
.+\.MSI_(.+)(?:_\d+)?
答案 0 :(得分:3)
我会用这个表达式:
MSI_([^_]+)(?:_|$)
捕获组将匹配第一个下划线_
之后的所有内容,一直到第二个下划线或结尾或字符串,以先到者为准。
答案 1 :(得分:0)
而不是。+,你需要匹配[^_]
(不是"_"
的字符集),除非你想要在第一个“_”之后的所有内容
所以你的表达式如下:
.+\.MSI_([^_]+)(?:_\d+)?