Совпадение URL с регулярным выражением, содержащим косую черту - PullRequest
0 голосов
/ 12 сентября 2018

Я использовал следующий скрипт для проверки регулярных выражений.

#!/bin/bash
urlPattern='/demo/([^\s]+)/'
#echo $urlPattern
if [[ "/demo/akash/" =~ $urlPattern ]];then
  echo "match"
else
echo "not match"
fi

дает мне результат "не совпадает"

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы можете использовать grep с -P, чтобы понять регулярные выражения Perl (как, кажется, ваш), и с -q, чтобы подавить его вывод и просто использовать его значение выхода:

#!/bin/bash
urlPattern='/demo/([^\s]+)/'
if grep -qP "$urlPattern" <<< "/demo/akash/"; then
  echo "match"
else
  echo "not match"
fi
0 голосов
/ 12 сентября 2018

Регулярные выражения в bash не понимают \s и подобные конструкции.Вы можете использовать [:space:], хотя:

urlPattern='/demo/([^[:space:]]+)/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...