Простое регулярное выражение, извлеките то, что находится между «/ d /» и «/»

#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:

Что касается вопроса — я не совсем уверен, но у меня есть этот сайт в закладках. Это довольно хороший учебник.

Надеюсь, это поможет!