Почему это регулярное выражение не совпадает ни с чем в поиске и замене VSCode? - PullRequest
1 голос
/ 04 февраля 2020

Я использую VSCode
enter image description here

Снимок экрана для демонстрации выбранных параметров поиска: enter image description here

И вот выражение, которое я пытаюсь использовать. Это работает в других местах, таких как regexr.com, но не в VSCode ...

font\-size\:\s{0,1}\d{2,2}px\;\s{0,1}

Вот это HTML:

https://codepen.io/JashoowellPadderssonn/pen/WNbVVEq

Я также попытался отключить все расширения, которые не работали. Вот мои настройки VSCode:

https://gist.github.com/CrocodileInAWhileAlligatorLater/409f0d9d179955ff80419a8a4506a09d

1 Ответ

3 голосов
/ 04 февраля 2020

Вы должны экранировать только те символы, которые должны быть экранированы.

Использование

font-size:\s?\d{2}px;\s?

Обратите внимание: - (здесь), : и ; не являются специальными и, следовательно, НЕ ДОЛЖНЫ быть экранированными.

Причина в том, что регулярное выражение теперь скомпилировано с модификатором u, позволяющим работать классам свойств Unicode (например, \p{L} соответствует любой букве Юникода). Вот проблема VSCode Github , Подумайте о поиске с помощью JS регулярных выражений в режиме Unicode . Он был закрыт 3 сентября 2019 года и проверен 3 октября 2019 года.

Побочным эффектом является более строгих требований к побегу .

За пределами классов символов, [...], необходимо экранировать следующие символы: ., ^, $, *, +, ?, (, ), [, { (вы можете оставить его без экранирования в большинстве случаев, однако, если вам нужно найти { с последующим номером и затем требуется экранирование }, ср. . /a\{3}/ (соответствует a{3})! = /a{3}/ - соответствует трем a с), \ и |.

Внутри классов символов , эти символы всегда следует избегать: ] и \. - должен быть экранирован, если он не находится в начале или конце класса символов ([-0-9_] = [0-9_-] = [_\-0-9]), а ^ должен быть экранирован, когда в классе символов начинается обозначение литерал ^ ([^0] (соответствует любому символу, кроме 0)! = [\^0] (соответствует ^ или 0)). См. Какие специальные символы должны быть экранированы в регулярных выражениях? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...