0

分割する複数の文字を使用して文字列を分割したいと思います。たとえば、次のスピン テキスト形式を考えてみましょう。

This is a {long|ugly|example} string 

この文字列を解析し、「{」、「|」、および「}」文字で分割したいと思います

myString.Split('|','{','}')

これで、操作するトークンができましたが、返された配列の各部分を分割するために使用された char に関する情報を保持したいと考えています。

このようなことができる既存のコードはありますか?

4

1 に答える 1

1

これには正規表現を使用する傾向があります。次に、一致グループを使用して、何が一致したかを追跡できます。

この正規表現テスターを確認してください。テスト データと次の正規表現パターンを使用します。

([^{|}]+)([{|}]?)

これにより、文字列が 5 つの一致に効果的に分割されます。各一致には、分割された文字列と分割された文字の 2 つのグループが含まれます。

これを実行するコードは次のようになります。

MatchCollection m = Regex.Matches("This is a {long|ugly|example} string ",@"([^{|}]+)([{|}]?)");

これで、一致コレクション m には、一致した各文字列の Match オブジェクトが含まれます。このオブジェクトには、文字列と分割された文字の 2 つのグループが含まれます。

m[0].Groups[0].Value; // 1st split string
m[0].Groups[1].Value; // 1st split character
于 2012-11-14T16:58:03.453 に答える