Отображение символа "/" в регулярном выражении - PullRequest
0 голосов
/ 07 мая 2020

Мне нужно название месяца с регулярным выражением.

Из них:

Дата изображения / видео: декабрь

Это:

Декабрь

regex: /[\s\S]*?\s*Image/video date:\s*((?:\S+[^\S\n]?)+?)[^\S\n]*\n[\s\S]*/

Итак, я хочу получить слово «декабрь» после «Дата изображения / видео:».

Вышеупомянутое регулярное выражение отлично подойдет для меня. Единственная проблема заключается в том, что я не знаю, как отобразить символ «/», чтобы достичь цели.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Символ '/' не является особенным в регулярном выражении. Обычно вам нужно разделить его, и именно этот символ выбирается для обозначения начала и конца выражения. Это зависит от языка, который вы используете, но обычно, если это так, вы можете избежать его интерпретации как разделителя регулярного выражения, используя escape-символ \\. Так, например, в vi(1) вы можете:

:1,$s/\/dev\/\(.*\)/\1/

, чтобы изменить все пути формы /dev/(.*) на \1 (просто удалите часть /dev/)

ПРИМЕЧАНИЕ:

Команда escapebe могла быть записана в vi(1) (изменение разделителя) как:

:1,$s:/dev/\(.*\):\1:
0 голосов
/ 07 мая 2020

Чтобы соответствовать специальному символу в регулярном выражении, есть способ избежать его. В вашем варианте регулярного выражения вы захотите написать \/, чтобы соответствовать прямому sla sh, так же, как вы можете сделать \[, чтобы соответствовать левой скобке без запуска класса символов.

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