Regex.Splitで文字列を分割し、すべての区切り文字を保持する方法は?Regex.Splitで文字列を分割し、すべての区切り文字を保持する方法は?
文字列「substring1 delimeter1 substring2」があります。ここでdelimeter + substring2はアドレスの一部です。
また、2つ以上のデリミタがあります。delim1、delim2は意味が同等です。
と私は、このような文字列の配列を取得したい:私はパターン持っ
arr[0]="subsctring1";
arr[1]="delim1 subsctring2";
または、
arr[1]="delim2 subsctring2;
を:
addrArr= Regex.Split(inputText, String.Concat("(?<=",delimeter1, "|",delimeter2, ")"), RegexOptions.None);
をしかし、それはうまく動作しません。
これに有効なパターンを作成する手助けができますか?
:
はこれを試してみてください。 :) 'Regex.Escape'に関しては、入力に無効な文字が含まれていなくても、パターンをリテラルと連結するときには常に*使用することをお勧めします。後でコードがどのように使用されるかに応じて、そうしなければ攻撃ベクトルを開く可能性があります(無効なパターンや場合によってはさらに悪いためにアプリケーションがクラッシュする)。 – Lucero
'Regex.Escape'では、パターンは[' string.Format(@ "\ s +(?= {0})"のようになります、string.Join( "|"、delimeters.Select(Regex.Escape)) ) '](http://ideone.com/BeQlum)。ただし、デリミタに開始/終了時に非ワード文字が含まれている場合は、 '\ b'を使用することはできません。カスタムロジックが必要です。 –