8

電話番号検証のための包括的な正規表現では、受け入れられた回答には多くのコメントがあります。@jcmcbeth によるコメントの 1 つは、ユーザーが送信した電話番号の数字を取得するために使用する次の単純な正規表現を提案しています。

string.replace("[^\d+!x]", "")

この提案された正規表現を含むコメントの直後に、別の質問者が を尋ねwhy the !x part?、次のコメントで回答します: The !x is there to keep any "x" character from getting stripped.

感嘆符を除いて、これは私には理にかなっています!。正規表現の文字クラスのドキュメントを見ると、感嘆符が特殊文字であることがわかりません。また、感嘆符のx前に特殊文字が必要であるとは思えません。また、リンクされた質問の議論から、感嘆符が電話番号の一部である可能性があることを示すコメントは見当たりません(否定文字クラスに含まれていることを説明します)。

感嘆符が存在する理由を誰かに説明してもらえますか? ありがとう。

4

2 に答える 2

7

あなたは絶対に正しいです、それでx十分です。 文字クラスの内側または外側!のリテラルに一致するだけです。!特別な意味を持つ唯一の場所は、それが否定的な先読みまたは否定的な後読みの一部である場合です。

于 2012-04-26T21:01:30.460 に答える
-3

確か に「NOT 、NOT 、NOT 、NOT 、 NOT [^\d+!x] 」という意味です。'\''d''+''!''x'

[ ]キャラクターグループです。

[^ ]文字のリストを否定します。

于 2012-07-06T19:11:33.827 に答える