5

入力が文字「a」または文字「x」のいずれかに一致することを確認するために使用できる正規表現は何ですか?

次のことを試しましたが、これは期待どおりに機能しません。

char option;

Console.WriteLine("Please make your option");
for (int i = 0; i < options.Length; i++)
{
    Console.WriteLine(options[i]);

}
option = char.Parse(Console.ReadLine());
while (option != 'a' || option != 'x')
{
    Console.WriteLine("'a' or 'x' please!!");
    option = char.Parse(Console.ReadLine());
}

私が望むのは、2 つの文字のうちの 1 つが入力としてのみ受け入れられるようにすることです。

4

3 に答える 3

6
   Regex.IsMatch(input, "[ax]", RegexOptions.IgnoreCase);

a、x、A、Xに一致します

于 2012-12-25T10:40:40.980 に答える
3

a + x合理的な言語では(a | x)[ax]、ほとんどすべての正規表現システムでは [ax] です。

于 2012-12-25T10:40:37.910 に答える
2

正規表現は必要ありません。ここに論理エラーがあります。while ループで (OR)&&の代わりに (AND) 論理演算子を使用する必要があります。||

while (option != 'a' && option != 'x')
于 2012-12-25T10:42:34.870 に答える