При чем тут (? I) \\.регулярное выражение значит? - PullRequest
0 голосов
/ 24 февраля 2012

Код использует следующее регулярное выражение

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

Я не уверен, экранирован ли . или \

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

\ экранирован, что является ошибкой, учитывая, что он пытается сделать ....

на самом деле, вы вынули это из контекста. это, вероятно, в строке. если он находится в строке, то он избегает косой черты, а затем , что косая черта экранирует точку.

~= означает «заканчивается», а (?i) переводит его в режим без учета регистра.


ошибка ... теперь, когда я об этом думаю, это выглядит как гибрид между CSS-селектором (вероятно, использовался в jquery ) и регулярным выражением (знаком с Синтаксис, я ничего не думал об этом!). ~= ничего не делает в регулярном выражении (это буквальные символы), хотя [ и ] представляют набор символов.

Итак ... Я не знаю, каков результат этого. Я подозреваю, что кто-то запутался и попытался смешать их.

0 голосов
/ 24 февраля 2012

В этом выражении экранируется «/», что, в свою очередь, экранирует «.»

0 голосов
/ 24 февраля 2012

Это означает совпадение без учета регистра, любая строка, которая заканчивается:

  • \. PNG
  • \. JPEG
  • \. JPG

Но это зависит от контекста. Если используется в контексте, если \ нужно экранировать на более высоком уровне, это означает, что регистр не учитывается:

  • .png
  • .jpeg
  • .jpg
...