/ /正規表現は、C#の2つの文字列を連結する[クローズ] - C#、正規表現、連結

正規表現は、C#の2つの文字列を連結する[クローズ] - C#、正規表現、連結

2つのサブストリングを連結することは可能ですか?正規表現を使用して入力文字列から 例:文字列 "ABTTPQR 00100300250000"を入力し、最初の2文字 "AB"と最初の9桁 "001003002"を取り込み、これら2つの文字列を1つの "AB001003002"

回答:

回答№1は2

参照を使用したバリエーションの大幅な短縮:

Regex.Replace("ABTTPQR 00100300250000", @"^(w{2})w*s(d{9})d+$", @"$1$2")
// = "AB001003002"

回答№2の場合は1

あなたは次のようにすることができます:

Regex regex = new Regex(@"(w{2})w*s(d{9})d*");
var matches = regex.Matches("ABTTPQR 00100300250000");
String output = matches[0].Groups[1].Value + matches[0].Groups[2].Value;
//AB001003002

正規表現説明:

(w{2})w*s(d{9})d*

(w{2}) 最初の2文字にマッチすると、より多くの文字とスペースが検索されます w*s 最初の9桁に一致します (d{9}) より多くの桁を探します d*.

() マッチをコードサンプルに示すようにC#でアクセスされるグループにキャプチャします: matches[0].Groups[1].Value グループ1(文字)と matches[0].Groups[2].Value グループ2(数字)


回答№3の場合は0

この関数を試してください

public static string Concat (string inputString, int charsNumber, int digitsNumber)
{
string [] block = inputString.Split(" ");
return block[0].Substring(0,charsNumber) + block[1].Substring(0,digitsNumber);
}

あなたのコードでそれを呼び出すと、必要なテキストが返されます

Concat("ABTTPQR 00100300250000",2,9)