#regex
#регулярное выражение
Вопрос:
Мне нужно извлечь xxxx в следующей строке URL-адреса:
{anything}/d/xxxx/{anything}
То есть, получите все, что находится между «/ d /» и первым «/» после этого, и забудьте остальное.
Ответ №1:
Вы не заметили, какой язык вы используете.
. /d/([^/] ).
сделает это и получит искомую часть в 1 доллар (на perl)
Ответ №2:
/d/(.*?)/
Предоставит вам группу захвата, содержащую то, что вы хотите.
Для начала неплохо бы использовать руководство по регулярным выражениям, в противном случае возьмите такой инструмент, как Expresso, и поиграйте! Это даст вам текстовую интерпретацию того, что означает ваше регулярное выражение.
Вот руководство по работе с Expresso: 30-минутное руководство по регулярным выражениям.
Комментарии:
1. Это не сработает, если после
/
может следовать несколько/d/
символов, поскольку это приведет к захвату за пределы первого.2. что сказал @eldarerathis. однако вы можете просто изменить
*
квантификатор на его отложенную версию*?
. тогда это сработает.3. @eldarerathis: Хороший момент, обновлено (согласно комментарию @mhyfritz).
Ответ №3:
Что касается вопроса — я не совсем уверен, но у меня есть этот сайт в закладках. Это довольно хороший учебник.
Надеюсь, это поможет!