2012-01-21 29 views
4

文字列からバージョン番号を抽出したい。バージョン番号についてはこれ文字列からバージョン番号を抽出するための正規表現パターン

a string = "Tale: The Secrets 1.6" 

b string=" The 34. Mask 1.6.98"; 

1.6 aとbのためであるあなたはこの形式を一致させる必要があり

[0-9]+(\.[0-9]+)+$ 

を書くことができ1.6.98

+2

これは、すべての種類のバージョン番号の右のあなたのdefenitionに依存? 1.6はC#の標準バージョン番号ではありません。1.6.0.0に似ています。遭遇する予定の他の種類のバージョン番号は何ですか?一桁はバージョン番号としてカウントされますか?あなたの文字列はあなたが考慮する必要があるバージョン番号以外の数字を持っていますか?正規表現を使って任意の数字の後ろにピリオドをつけて(([0-9] +)\。?)+をコンストラクタで文字列を受け取ることができるVersionクラスに渡すのはどうですか? – devshorts

答えて

9
\d+(\.\d+)+ 

\d+                  :1桁以上の数字
\.                      :1つのドット
(\.\d+)+:ドット桁の1以上の出現箇所

3

です。 $は最後に一致するためのもので、必要がない場合は削除できます。

2

バージョン番号とは、ドットが散在している数字の連続を意味しますか?

\d+(\.\d+)+ 
7

試してみてください。

Regex pattern = new Regex("\d+(\.\d+)+"); 
Match m = pattern.Match(a); 
string version = m.Value; 
+1

その正規表現は '34. 'のようなドット終端の数字にもマッチします。 – Douglas

+0

@Douglas:そうです、パターンを編集します – Mithrandir

関連する問題