2014-01-28 5 views
1

Я строка какИзвлечение основной версии от версии в C#

myString = "some (numbers) \string \stringwithversion 12.3.45"; 

пример строки

C:\Program Files (x86)\Product\Product Edition 12.3.45 

мне нужно, чтобы получить 12 в качестве выходного сигнала

он думал о расщеплении строки с пробелами и разделить результат снова с пробелами и получить первый;

myString.Split(' ').Last().Split('.').First(); 

, тогда как я видел что-то с регулярным выражением и получаю от групп [я этого не понимаю].

Что лучше всего получить главную версию из этой строки?

+0

Можете ли вы привести нам пример одной из строк, которые вы будете разбора? – wruckie

ответ

2

Регулярное выражение:

[^0-9]*([^\.]*)\..* 

Объяснение:

  1. [^0-9]*: Найти 0 или более символов, которые не являются числами. Отбросьте все их.
  2. [^\.]*: Найдите 0 или более символов, которые не являются периодом.
  3. ([^\.]*): Захватите эти символы (т. Е. Вы можете назначить их переменной, $1).

(Примечание: Я полагаю, что только числа в строке являются от версии!)

Код:

string strRegex = @"[^0-9]*([^\.]*)\..*"; 
Regex myRegex = new Regex(strRegex, RegexOptions.Multiline); 
string strTargetString = @"some (numbers) \string \stringwithversion 12.3.45" + "\n"; 
string strReplace = @"$1"; 

return myRegex.Replace(strTargetString, strReplace); 

Вы можете проверить его here.

Смежные вопросы