Я намагаюся придумати регулярний вираз, який окремо підхопить до другого косого кута як останнього символу (наприклад, /s/test/xxxx/
)
Однак я не можу гарантувати, що вказані вище URL-адреси включатимуть щось інше, не закінчуючи додатковим косою рисою, наприклад. /s/test/xxxx/yyyy/
Якщо я використовую щось подібне
^/s/(.*?)/(.*?)/
Наведений вище працює добре для першого шаблону, але як тільки я додаю $
щоб переконатися, що останній (і другий) прорізний косий рисок є останнім символом, обидва випадки наведені нижче.
/s/test/xxxx/
/s/test/xxxx/yyyy/
Що не так?
Дякую
Відповіді:
0 для відповіді № 1Ви можете скористатися заперечним класом символів:
^/s/[^/]+/[^/]+/$
Пояснення регексу (ввічливість це):
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
/s/ "/s/"
--------------------------------------------------------------------------------
[^/]+ any character except: "/" (1 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
/ "/"
--------------------------------------------------------------------------------
[^/]+ any character except: "/" (1 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
/ "/"
--------------------------------------------------------------------------------
$ before an optional n, and the end of the
string
0 для відповіді № 2
Ви можете використовувати цей регулярний вираз:
^/[^/]+/[^/]+/[^/]+/?$