0

最初に、次のような質問がありました。

テキストボックスに複数の GroupName を追加します。

  1. ","GroupName は/ "or"/で区切ることができます"OR"
  2. 入力は","/ "or"/で開始または終了してはなりません"OR"

例えば:

GroupName、GroupName または GroupName OR GroupName
GroupName、GroupName、GroupName、GroupName または GroupName

このために、私は答えを見つけました

/^[a-zA-Z0-9\s]+(?:\s*(?:or|OR|,)\s*[a-zA-Z0-9\s]+)*$/

or ORプレフィックスとしてキーワードをサポートするようにこの正規表現を変更する方法。また、次のように、2 つの連続したプレフィックスを使用することはできません。

または または グループ名

(上記の例は有効な入力ではありません。)

誰でもこれで私を助けることができますか? 前もって感謝します。

4

1 に答える 1

1

Regex.Splitを使用して単純化して、パターンがトークンのみになるようにしないのはなぜですか?

だからあなたは次のようなことを言うでしょう

string[] substrings = Regex.Split(input, "[\w]?(OR|,)[\w]?", RegexOptions.IgnoreCase);

次に、空のアイテムを防ぐことを心配するのではなく、空の部分文字列を破棄します。ちなみに、このアプローチでは区切り文字がキャプチャ グループであるため、結果の配列に引き出されますが、リンクされたドキュメントにはそれを回避する方法が示されています。

また、空白を無視するため、「OR」や「Egon」として「Oregon」のような結果を引き出す可能性があるため、「Or」演算子には空白の一致を強制することをお勧めしますが、「、」については避けます。スペースなしでそれを使用することもできます。

于 2012-05-09T10:52:15.383 に答える