0
我有以下的字符串正则表达式来提取此字符串
- 詹金斯-客户1.4
- 的perl-5.16
- 红宝石-1.9
10gen的-MMS代理-1.0
是否可以使用正则表达式来提取短划线和版本中的术语,并将其删除以最终得到如下所示的内容?
詹金斯-cleint
- perl的
- 红宝石
- 10gen的-MMS代理
THX, -Peter
我有以下的字符串正则表达式来提取此字符串
10gen的-MMS代理-1.0
是否可以使用正则表达式来提取短划线和版本中的术语,并将其删除以最终得到如下所示的内容?
詹金斯-cleint
THX, -Peter
这样做:(.*?)-[0-9][0-9.]+
.*?
匹配任何东西,但尽可能少。这是您要提取的捕获组。 -[0-9][0-9.]
匹配连字符,然后是数字,然后是任意数字和句点。
实施例为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();
}
}