2013-05-08 6 views
0

У меня есть следующая строкарегулярное выражение для извлечения этой строки

  • Дженкинс-клиент-1,4
  • Perl-5,16
  • рубинового 1.9
  • 10gen-мм-агент 1,0

    Можно ли использовать регулярное выражение для извлечения терминов с тире и версией, удаленной, чтобы получить что-то вроде следующего?

  • Дженкинс-cleint

  • Perl
  • рубинового
  • 10gen-мм-агент

Thx, -Питер

ответ

0

Это сделают это: (.*?)-[0-9][0-9.]+

.*? соответствует всем, но как можно меньше. Это группа захвата, которую вы хотите извлечь. -[0-9][0-9.] соответствует дефису, затем цифре, затем количеству цифр и периодам.

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(); 
    } 
} 
Смежные вопросы