ドットは正規表現の文字クラス(角括弧)でエスケープする必要がありますか?


95

.正規表現のドットは、任意の1文字と一致します。正規表現がドットと一致するためには、ドットをエスケープする必要があります。\.

角括弧の内側[]のドットはエスケープする必要がないことが指摘されています。たとえば、式: [.]{3}は...文字列に一致します。

ほんとに?もしそうなら、それはすべての正規表現標準に当てはまりますか?


はい、DOT(および他のほとんどの特殊文字)は文字クラスでエスケープする必要がないことは事実です。
— anubhava 2013年

3
正規表現構文には「標準」はありません。
— BoltClock

3
@BoltClockにはいくつかあります:posix、posix拡張、perl。en.wikipedia.org/wiki/Regular_expression#Standardsを
— Dariusz

1
@ダリウスあなたは私が間違っていると思ったので私に反対票を投じたのはあなたですか?もしそうなら、私は私の2ポイントを返したいです:)
— ポールサムソタ

@peeskilletはい、私は修正しました。Thxと申し訳ありません。
— Dariusz 2013年

回答:


134

文字クラス(角括弧)以外の任意の文字には^、-、]または\リテラルです。

このウェブサイトは素晴らしいリファレンスであり、さまざまな正規表現のニュアンスに関する多くの情報があります。 http://www.regular-expressions.info/refcharclass.html


3
それは言語がそれをどのように処理するかに本当に依存しますが、ほとんどの言語にとってこれは本当です。
— Patrick Oscity 2013年

40
-最後の値の場合はリテラル
— CONvid19

16
そして、^は、最初の文字でない場合は文字通りです
— ナイジェルB.ペック

1
$が変数のように見える場合は、それもエスケープする必要があります。例:[$。]
— W3Coder 2017年

1
@PedroLobitoそして、それが最初の場合、私は思う
— Tim Malone
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.