0

フォームの秘密の質問の場合、ユーザーに4またはfour、または後者のバリエーションを入力してもらいます。

現在/\b4|four\b/gi、このサイトで見つけたもののバリエーションであるこの正規表現があります。問題は、ユーザーが458何かを入力できることです。それで、誰かが私を助けることができますか?

4

3 に答える 3

0

試す:

^4|four$

これは "4" と "four" に一致します。使用するプログラミング言語によっては、C# のRegexOptions.IngoreCaseのように大文字と小文字を区別しないオプションがある場合があります。

于 2012-05-18T19:58:16.227 に答える
0

したがって、これには大文字と小文字を区別しない比較を使用する必要があります。一部の (おそらくほとんどの) 正規表現フレーバーは、(?i)大文字と小文字を区別しないことを示すパターンをサポートします。

^(?i)(?:4|four)$

しかし、これが JavaScript の場合は、最初に使用したものに似た構文を使用できます...

/^(?:4|four)$/i

この/i場合、 は大文字と小文字を区別しません。しかし/g、これはグローバル マッチング用であり、ここでは必要ないため、削除しました。

グループ4|four内にも入れていることに注意してください。これは、取得した値に対して何もする必要がない場合(?:non capturing)、従来のグループを使用するよりも効率的です。(capturing)

次に、すべてを囲む^とアンカーにより、余分な先頭または後続の文字がないようになります。$

于 2012-05-18T20:07:51.067 に答える
0

「後者のバリエーション」とはどういう意味かわかりませんが、

/^(4|four)$/i

4 または 4 の文字列全体に一致します。^試合は最初と最後$だけ。/i大文字と小文字を区別しないことを意味します (したがって、FOUR も同様に受け入れられます)。一部の言語では、そのようなフラグを使用しません (それらの言語では、インセンシティブ マッチを行う方法についてドキュメントを確認する必要があります)。大文字と小文字を区別しない一致を使用できない場合は、代わりにこれを行うことができます。

/^(4|[fF][oO][uU][rR])$/i

もちろん、作業している言語に関係なく、おそらく同等の比較も行われます。だからあなたはただすることができます(例えば)

if (str == "4" || str == "four")
于 2012-05-18T19:56:59.490 に答える