3

a が正規表現の任意の文字に一致することは知っています.が、これらの結果に少し困惑しており、誰かがそれらを説明できることを望んでいます:

".".match("[+-\/]") //matches
".".match("[+\-\/]") //matches
".".match("[+\/]") //null
".".match("[\+\/]") //null
".".match("[-\/]") //null
".".match("[+-]") //null

+-\/JS が「うん、ピリオドのように見える」という魔法のようなものは何ですか?

4

2 に答える 2

4

ASCII コード+/43、47 です。

[+-\/]+/: +, ,, -, .の間の文字範囲に一致./ます。一致.しています。


ここではエスケープ-しても効果がありません。

"[+\-\/]" == "[+-/]" // => true.

, ,/[+\-\/]/のみを一致させたい場合は、正規表現リテラル () を使用する必要があります。または、エスケープ自体: (文字列リテラルを使用する場合、エスケープは必要ありません)+-/\"[+\\-/]"/

于 2013-10-26T05:42:19.490 に答える
0

上記の回答よりも少し進んで、この表現[--/]を使用してさらに具体的にすることができます (他の可能性を含む+とを一致させる代わりに/、これは と の間のみ-です/

これは、私がこれを使用しているものの簡単な例です - ドルの金額を小数と一致させます (通貨記号をキャプチャしません):

表現:\d+[--/]\d{2}

次のようなマッチング: 110.30

これをコメントとして追加するだけですが、まだ十分な担当者がいません。

于 2015-03-19T21:37:48.287 に答える