Регулярное выражение для точного соответствия с переменной частью - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть несколько строк, равных:

data-ecommerce-content-id="5d7e7cb9-2f79-454d-9d8f-7a35566a3eb6" data-ecommerce-path="/firstvariable/secondvariable" data-ecommerce-row="1"

, где firstvariable и secondvariable содержат буквы, цифры и "-"

Я хочу иметь возможность захватить:

/firstvariable/secondvariable

Я пытался:

^data-ecommerce-path=".*("{1})$

Но это не выводит никакого соответствия

(я использую Python)

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Попробуйте

data-ecommerce-path="([^"]+)"

(Якоря будут работать, только если вы сопоставите все от начала до конца.)

1 голос
/ 30 сентября 2019

Ваше регулярное выражение близко.

Символ ^ представляет начало строки, а символ $ представляет конец строки. Поскольку желаемое совпадение находится в середине строки, вы можете удалить оба из них.

Затем, чтобы захватить только текст между двойными кавычками, попробуйте следующее: "(.*?)"

Ваш полный шаблон должен выглядеть следующим образом: data-ecommerce-path="(.*?)"

Тогда нужный вам текст будет в группе захвата 1. Что-то вроде: match.group(1)

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