2016-04-23 10 views
-3

することにより、これらの単語を分離するために、次のように私はsentenseを持っている:私は上記の文章から4つの値に分離する必要がどのように正規表現

"I.UILISTNConsolidatedGroup: 8000Quarte: AnnualUnit: USD" or 
"I.UILISTNDOUxConsolidatedGroup: 8000Quarte: FullUnit: VND" 

:I.UILISTN、8000、年次、USD。私はそれを分けるためにインデックスを使用していますが、それはとても長くて複雑なので、これらの値を正規表現(C#)で区切ってください。 ConsolidatedGroup、Quarte、Unitという単語は固定されています。

ありがとうございます!

+1

あなたは(あなたが内に十分な固定データを持っているので、動作します)作業IndexOfのソリューションを持っている場合は、ほぼ間違いなく、それにこだわっ方がいいでしょう。おそらく、正規表現より速く、頭痛を軽減します。 – kchinger

+0

1つのオプションが 'Split'オプションを使用している可能性があります。I.UILISTNConsolidatedGroup:8000Quarte:AnnualUnit:USD" .Split(new string [] {"ConsolidatedGroup:"、 "Quarte:"、 "Unit:" }、StringSplitOptions.RemoveEmptyEntries); ' –

答えて

3

マニュアルマッチングは、ほとんどの場合、正規表現よりも高速です。

string text = "I.UILISTNConsolidatedGroup: 8000Quarte: AnnualUnit: USD"; 
Regex regex = new Regex(@"([\w\.]+)ConsolidatedGroup: (\d+)Quarte: AnnualUnit: (\w+)"); 
var match = regex.Match(text); 
foreach (var m in match.Groups) 
{ 
    Console.WriteLine(m); 
} 

出力:

I.UILISTNConsolidatedGroup: 8000Quarte: AnnualUnit: USD 
I.UILISTN 
8000 
USD 
関連する問題