0

私はかなり長い間これをやろうとしてきましたが、何らかの理由でうまくいきませんでした。

次のようなテキストがあります。

  • 12325 NHKKF
  • 34523KGJ
  • 29302 MMKSEIE
  • 49504EFDF

ルールは、上記のように、正確に5 桁の数字(多かれ少なかれ) の後に1 つのスペース(またはスペースなし) といくつかのテキストがあることです。正規表現パターンを使用して MATCH を行い、 THE NUMBER と SPACE と THE TEXTを抽出したいと思います。

これは可能ですか?どうもありがとうございました!

4

4 に答える 4

2

あなたの言葉遣いから、一致が成功した場合に入力テキストの各コンポーネント部分を取得できる必要があるように思われるため、名前付きグループを提供するものを次に示します。したがってnumber、正規表現が一致する場合は簡単に取得できます。spacetext

(?<number>\d{5})(?<space>\s?)(?<text>\w+)

返されたで、次のことができるMatch場合:Success==true

string number = match.Groups["number"].Value;
string text = match.Groups["text"].Value;
bool hadSpace = match.Groups["space"] != null;
于 2012-09-10T10:23:18.957 に答える
1
string test = "12345 SOMETEXT";
string[] result = Regex.Split(test, @"(\d{5})\s*(\w+)");
于 2012-09-10T10:24:04.027 に答える
0

Splitメソッドを使用できます。

public class Program
{
    static void Main()
    {
        var values = new[] 
        { 
            "12325 NHGKF", 
            "34523 KGJ", 
            "29302 MMKSEIE", 
            "49504EFDF" 
        };
        foreach (var value in values)
        {
            var tokens = Regex.Split(value, @"(\d{5})\s*(\w+)");
            Console.WriteLine("key: {0}, value: {1}", tokens[1], tokens[2]);
        }
    }
}
于 2012-09-10T10:22:37.253 に答える