2012-02-24 702 views
0

代碼使用下面的正則表達式什麼是(?i)\。正則表達式的意思

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

我不知道如果.被轉義或\

+0

某些環境會有所幫助。這存在於哪裏?它是否在字符串文字中? – 2012-02-24 04:48:00

+2

在JavaScript中,你可以使用字符串'new RegExp(「img [src〜=(?i)\\。(png | jpe?g)]」)'或者用正則表達式'/ img [src〜 = \\(Ⅰ')。(PNG |?JPE克)] /'。你在使用哪一個? – dana 2012-02-24 04:48:54

+0

@dana:它是使用字符串的正則表達式和[CSS選擇器](http://www.w3.org/TR/CSS2/selector.html#attribute-selectors)的組合。 – ababzy 2012-02-24 05:24:21

回答

2

\被轉義,這似乎給出錯誤它正試圖要做......

實際上,你已經把它從背景中去掉了。這可能是一個字符串。如果它在一個字符串中,那麼它就是逃避斜槓,然後斜槓正在逃離這個點。

~=的含義是「以......結尾」,(?i)將其切換爲不區分大小寫的模式。


errr ......現在,我想想,實際上看起來像一個CSS selector(可能使用in jquery)和正則表達式的混合體(即既熟悉語法,我以爲沒事了!)。 ~=在正則表達式中不做任何事情(它們是文字字符),但[]表示字符集。

所以......我不知道這是什麼結果。我懷疑有人感到困惑,並試圖混合兩者。

+2

我猜這是一個字符串。它幾乎看起來像一個jQuery選擇器,用於以src結尾爲.png或.jpg或.jpeg的''標記。 – dana 2012-02-24 04:53:04

+0

當然,我愚蠢!它在一個字符串中。但「(?i)」與「。*」有什麼不同? – ababzy 2012-02-24 04:54:11

+0

(?i)指定選項。這不是表達的一部分。 – 2012-02-24 04:56:39

0

這意味着匹配的情況下不敏感,即在結尾的任意字符串:

  • \ .PNG
  • \ .JPEG
  • \ .jpg文件

但是,這是依賴於上下文。如果在一個環境中使用,是\需要在更高的層面上脫離了,那麼就意味着比賽的情況下不區分大小寫:

  • png格式
  • .JPEG
  • 的.jpg
0

在這個表達式'/'被轉義出來了,這反過來逃避了'。'。

相關問題