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();
}
}