2011-11-13 7 views
0

私は多くの異なった入力文字列を持っており、入力文字列を3つのセクションに分割する必要があります。以下のいくつかの例(いくつかの可能性があるが):英数字の文字列を3つのセクションに分割する正規表現ですか?

1A1 = 1、A、1

123AA44 = 123、AA、44

AA44 =空、AA、44

44AAこれらのセクションのために= 44、AA、空

追加の制約:

  • 第一セクションがオンになっています数値LY及び1-4文字
  • 2セクションのみアルファであり、1-3文字
  • 第3節では、数字または英数字であってもよいし、1-4文字の長さ

I下のコードで私の正規表現の知識の終わりに達しました。 3つのセクションの1つが入力に空のままである場合を除いて、すべてのシナリオで機能します。助けが要る!ありがとう。

Regex regex = new Regex("(?<Section1>[0-9]{1,4})(?<Section2>[a-zA-Z]{1,3})(?<Section3>[0-9a-zA-Z]{1,4})"); 
Match match = regex.Match(inputString); 

string 1 = match.Groups["Section1"].Value; 
string 2 = match.Groups["Section2"].Value; 
string 3 = match.Groups["Section3"].Value; 
+0

で開始する第三セクションにルールを追加しましたか? 3番目のセクションは常に文字で始まりますか? – pauloya

+0

2番目のセクションは常に文字で終わり、3番目のセクションは常に – Borophyll

答えて

2

これを試しましたか?

Regex regex = new Regex("(?<Section1>[0-9]{0,4})(?<Section2>[a-zA-Z]{0,3})(?<Section3>[0-9a-zA-Z]{1,4})"); 
+0

というハハで始まります。ありがとうございました! – Borophyll

+0

そうですね、それはもっと理にかなっています!あなたはちょうど最後のセクションでゼロを逃した。 – pauloya

0

各セクションにオプションを追加するだけで十分です。
そして、私はあなたが第三項から第二の区別はどうすればよいの数

Regex regex = new Regex("(?<Section1>[0-9]{1,4})?(?<Section2>[a-zA-Z]{1,3})?(?<Section3>[0-9][0-9a-zA-Z]{0,3})?"); 
関連する問題