4

誰かがこの正規表現を変更して文字列にピリオドを許可する方法を教えてもらえますか?

string[] parts = Regex.Split(s, @"\b|[^\.#_a-zA-Z0-9()=><!%]");

文字列を提供する場合:"HELLO ABC.123"

この正規表現が戻ってきました{"HELLO", "ABC", ".", "123"}

帰りたい{"HELLO", "ABC.123"}

正規表現パターンに対する私の許しを許してください。

編集:私はC#3.5を使用しています

4

2 に答える 2

3

\bの期間の両側で一致しABC.123ます。それを避けるためにそれを変更することができます。例えば:

(?<![\w.])(?=[\w.])|(?<=[\w.])(?![\w.])

完全な引用表現を与える:

@"(?<![\w.])(?=[\w.])|(?<=[\w.])(?![\w.])|[^\w.#()=><!%]+"

#()=><!%すべての文字クラスに文字を追加することをお勧めします。

于 2012-06-12T13:37:17.450 に答える
1

から削除\bして\b|[^\.#_a-zA-Z0-9()=><!%]、次を使用します。

string[] parts = Regex.Split(s, @"[^#_a-zA-Z0-9()=><!%]");
于 2012-06-12T13:13:57.090 に答える