2012-02-24 20 views
0

コードは、エラーが、それはしようとしているものを与えているように見える\がエスケープされ.がエスケープされている場合、私はわからないんだけど、次の正規表現(?i)\は何ですか?正規表現はどういう意味ですか?

img[src~=(?i)\\.(png|jpe?g)]

または\

+0

いくつかのコンテキストが役立ちます。これはどこにありますか?それは文字列リテラル内にありますか? –

+2

javascriptでは、文字列 'new RegExp(" img [src〜=(?i)\\。(png | jpe?g)] ")'または正規表現のリテラル '/ img [src〜 =(φi)\\。(png | jpe?g)]/'となる。あなたはどちらを使っていますか? – dana

+0

@dana:文字列を使った正規表現と[CSSセレクタ](http://www.w3.org/TR/CSS2/selector.html#attribute-selectors)の組み合わせです。 – ababzy

答えて

2

を、使用していますすることができます....

実際には、あなたはそれを文脈から外しました。それはおそらく文字列の中にあります。それが文字列であれば、スラッシュをエスケープしてから、スラッシュがドットをエスケープしています。

~=は「ends with」を意味し、(?i)は大文字と小文字を区別しないモードに切り替えます。


errr ...今私はそれについて考える、それが実際にCSS selector(おそらくin jqueryを使用)と正規表現が(両方の構文に精通している、私はそれについて何も考えていない!)の間のハイブリッドのように見えます。 ~=は、正規表現では何もしません(リテラル文字です)。[]は文字セットを表しています。

だから私はこれの結果が何であるか分かりません。私は誰かが混乱して、2人を混ぜ合わせようとしたと思う。これは、小文字を区別せずにマッチケースを意味

+2

私はそれが文字列だと思います。ほとんどの場合、srcが.pngまたは.jpgまたは.jpegで終わる ''タグのjQueryセレクタのようです。 – dana

+0

愚かな私、もちろん!それはひもであった。しかし、 '(?i)'は '。*'とどう違うのですか? – ababzy

+0

(?i)はオプションを指定します。それは表現の一部ではありません。 –

0

、で終わる任意の文字列:

をの.jpg \

  • \ .pngの
  • \ .JPEG
  • しかし、これは文脈に依存しています。文脈で使用される場合は、より高いレベルで出てエスケープする必要が\た、それは小文字を区別せずにマッチケースを意味します

    • がで
0

を.jpgの

  • .JPEG
  • を.pngをこの式 '/'はエスケープされ、次に '。'がエスケープされます。

  • 関連する問題