0

次のルールを使用して、文字列を分割してコレクションを作成したいと思います。文字列を単語に分割する必要があります。

1)文字列に「\ n」が含まれている場合は、別の「\n」単語と見なす必要があります。
2)文字列に複数の「\ n」が含まれている場合は、「\n」の単語よりも多いと見なす必要があります。
3)文字列からスペースを削除しないでください。唯一の例外は、スペースが2つの間にある場合は\n無視できることです。

PS:文字列分割、最初の分割文字\ nで多くのことを試し、コレクションを作成しました。欠点は、\ n連続して2つある場合、コレクションに2つのダミー単語を作成できないことです。どんな助けでも大歓迎です。

ここに画像の説明を入力してください

とにかく正規表現を使用してこれを行うことはありますか?

4

3 に答える 3

1

宿題のように見えます。そのため、を読んでください\b

正しい方向にあなたを設定する必要があります。

于 2012-06-04T15:13:37.577 に答える
1

ゼロ幅アサーションを読んでください。それらを使用すると、隣接する文字と実際に一致することなく、たとえば\sとの間の分割位置を定義できます。\S

編集: OPがそれらの構成について尋ねた別の質問があり ます。

于 2012-06-04T16:03:45.883 に答える
1

次のような正規表現で分割します。

(?<=[\S\n])(?=\s)

何かのようなもの:

var substrings = Regex.Split(input, @"(?<=[\S\n])(?=\s)");

これはスペースをまったく削除しませんが、それは必須ではなかったので問題ありません。

s間のスペースを本当に\n削除したい場合は、次のように分割できます。

(?<=[\S\n])(?=\s)(?:[ \t]+(?=\n))?
于 2012-06-04T16:14:27.867 に答える