我有以下字符串
10gen的-MMS代理-1.0
是否可以使用正则表达式来提取带有破折号和版本的术语,最终得到如下内容?
詹金斯-cleint
THX, -Peter
答案 0 :(得分:2)
C#的示例
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
string[] terms = new string[] {
"jenkins-client-1.4",
"perl-5.16",
"ruby-1.9",
"10gen-mms-agent-1.0"
};
Regex termRegex = new Regex(@"^(.+)-(\d+[.]\d+)$");
foreach (string term in terms)
if (termRegex.IsMatch(term))
Console.WriteLine(termRegex.Match(term).Groups[1].Value);
Console.ReadLine();
}
}
答案 1 :(得分:0)
这样做:(.*?)-[0-9][0-9.]+
.*?
匹配任何内容,但尽可能少。这是您要提取的捕获组。
-[0-9][0-9.]
匹配连字符,然后是数字,然后是任意数量的数字和句点。