2012-02-24 110 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

在这个表达式'/'被转义出来了,这反过来逃避了'。'。

相关问题