我有以下字符串
- 詹金斯客户端 1.4
- perl-5.16
- 红宝石-1.9
10gen-mms-agent-1.0
是否可以使用正则表达式来提取带有破折号和版本的术语,最终得到如下内容?
詹金斯克莱特
- perl
- 红宝石
- 10gen-mms-agent
谢谢,-彼得
我有以下字符串
10gen-mms-agent-1.0
是否可以使用正则表达式来提取带有破折号和版本的术语,最终得到如下内容?
詹金斯克莱特
谢谢,-彼得
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();
}
}
这将做到:(.*?)-[0-9][0-9.]+
.*?
匹配任何东西,但尽可能少。这是您要提取的捕获组。
-[0-9][0-9.]
匹配连字符,然后是数字,然后是任意数量的数字和句点。