2011-11-15 23 views
2

奇妙なことに、私はMySQLの正規表現の角括弧内のリテラルとして安全に使用できない文字のリストをどこかに見つけることができません。[:character_class:]もの。MySQL正規表現の角括弧のメタ文字のリスト

(MySQLの正規表現はPerl/PHP/Javascriptなどと比較して不足していると思われるため、答えはおそらくMySQL固有のものである必要があります)。

答えて

3

(ドット.含め、+*?数量、終了の文字列アンカー$、など)ほとんどすべてのメタ文字は、いくつかの注目すべき例外を除いて、文字クラス内で特別な意味を持ちません。

    明らかな理由の文字クラスを否定するために使用される
  • キャレット^、用
  • 閉じ括弧]は、(例えば:[^ab]は、任意の文字に一致しますが、aおよびb)。
  • 範囲を示すために使用されるハイフン-、(例えば:[0-9]マッチ任意の数字)

文字クラス内の戦略的な場所に配置されている場合しかし、これらはまだ逃げることなく添加することができる。

  • 閉じるブラケットは、開きブラケットのすぐ後に置くことができます。たとえば、[]a][またはaと一致します。
  • キャレットは、例えば、どこにもなく、開口部ブラケットの後を配置することができます:[a^]マッチ^またはa
  • ハイフンは右開きブラケットの後や閉じ括弧の前に配置することができ、例えば:[-a][a-]の両方が一致aおよび-

詳しい情報はPOSIX regexにmanページで見つけることができthe documentationから

+0

これはどうやって間違っていますか? – NullUserException

+0

ありがとう@NullUserException。私はこれを使用します。 – spiderplant0

+1

'[要出典]'。OPは、(a)正確であるという証拠がなく、(b)適切な文書を見つける際に学んだ教訓がない、怠け者の道を奪うことにだまされた。恥。 –

0

、右上部付近(おかげでTomalak Geret'kal!):

このセクションでは、例を用いて、まとめたもので、 REGEXP操作のためにMySQLで使用できる特殊文字と 構造体です。 には、Henry Spencerの regex(7)マニュアルページのすべての詳細が含まれていません。このマニュアルページはMySQLソース ディストリビューションに含まれています。regex.7ファイルのregexディレクトリにあります。

上記のマンページは、here(thanks、Google!)のコピーにあります。あなたが探している情報はそこにあります。

+0

ありがとうございますが、正規表現の特殊文字のためのものです。私が信じている角括弧の中のものとは異なるセットです。 – spiderplant0

+1

@ spiderplant0:はい? '[..]'は正規表現構文の一部であり、その規則についていくつかの段落があります。セマンティクスはそれよりも複雑なので、単純なリストはありません。もう一度リンクしたmanページを読んで、今度は3分以上かかるようにしてください。 –

+1

@ NullUserExceptionఠ_ఠ:リンクしているマニュアルページは、そのトピックに関する_all_情報の信頼できるソースです。それは完全に質問に答えるものです。 –

関連する問題