3

次の文字列を分割する必要があります

the quick brown fox jumps over the lazy dog

次のトークンに:

  1. the
  2. クイックブラウンフォックスは飛び越えます
  3. 怠惰な犬

説明するために、分割したいのですtheが、前の配列要素に区切り文字を含めますthe(それ自体の個別の要素としてではありません)。

誰かがこれに光を当てることができますか、またはおそらく私に正しい正規表現を与えることができますか?

私はC#を使用しています。

4

1 に答える 1

4

後読み()を使用する必要があります?<=。名前がすべてを物語っています。前の文字を見て、特定のパターンに一致するかどうかを確認してください。

これは機能するはずです:

"(?<=\\bthe) "

したがって、任意のスペースで、前の文字が一致しているかどうかを確認し、"the"一致している場合は一致します。

注-単語の境界\\b(エスケープ\b)も含める必要があります。そうしないと、のようなもの"bathe"も一致します。

後読みなしで、すべてのスペースをチェックします。

   v     v     v   v     v    v   v    v
the quick brown fox jumps over the lazy dog

後読みで、それ以前に持っていたものだけを一致させます"the":(今のところ無視し\\bます)

"the "-スペースが見つかりました。最後の文字は"the"ですので、一致させてください。
"quick "-別のスペースが見つかりましたが、最後の文字は"...k"ですので、一致しません。

テスト

于 2013-03-17T20:13:27.843 に答える