「AZ」とアッパーの間に主な違いはありますか?


7

これを正しく理解したことを確認したいだけです。

(rx (one-or-more (any upper lower)))

等しい

(rx (one-or-more (any "A-Z" "a-z")))

正しい?


6
[A-Z]試合のみASCII、からの手紙で大文字、AスルーZ。その他の非ASCII大文字があります(英語以外の言語など)。
ドリュー

回答:


13

マクロrxは、他のEmacs関数に渡すことができる正規表現文字列を返します。

ELISP> (rx (one-or-more (any upper lower)))
"[[:lower:][:upper:]]+"
ELISP> (rx (one-or-more (any "A-Z" "a-z")))
"[A-Za-z]+"

それはあなたの質問に直接答えるものではありません。「これらの2つの正規表現は同一ですか?」だから、間にない大文字または小文字のための見てみましょうAZか、az。やってみようá

ELISP> (string-match-p (rx (one-or-more (any upper lower))) "á")
0 (#o0, #x0, ?\C-@)
ELISP> (string-match-p (rx (one-or-more (any "A-Z" "a-z"))) "á")
nil

したがって、正規表現は同一ではありません。おそらくあなたは(rx (one-or-more (any upper lower)))ほとんどの時間を使いたいでしょう。ほとんどの人が文字と考える文字が含まれているだけでなく、読みやすくなっていると私は思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.