Как получить значения CID изображения без cid: from ‹img src = с использованием регулярного выражения?

В моем сценарии я хочу получить значение cid без cid: из img src в содержимом почты. У меня есть встроенный код изображения, например <img src="cid:ii_k4ib6vux0" alt="image.png" width="195" height="162">.

Теперь я хочу получить значение cid ii_k4ib6vux0. Когда я пытаюсь использовать регулярное выражение cid([^""']+), у меня есть значение cid, например cid:ii_k4ib6vux0. Но я хочу получить только ценность. Пожалуйста, помогите мне получить точные значения.

Заранее спасибо!


person Sathish Chelladurai    schedule 27.12.2019    source источник
comment
На каком языке ты говоришь? Ваше регулярное выражение захватывает часть cid, поэтому, конечно, она будет частью результатов. В вашем случае вам нужно просто взять первую группу (что в скобках). Вы также должны включить двоеточие.   -  person Andrew    schedule 27.12.2019
comment
Удалось ли вам решить эту проблему, CSK? Вы должны отметить ответ как принятый, если он был полезен.   -  person Andrew    schedule 04.01.2020


Ответы (2)



Чтобы захватить только этот код и не проверять группы (части в скобках), вы можете использовать положительный просмотр назад:

(?<=cid:)[^"']+

Это будет соответствовать любому символу, кроме ' и ", которые идут после cid:.

В противном случае, используя регулярное выражение, подобное вашему (обратите внимание на : и удаленный "):

cid:([^"']+)

Вам нужно проверить первую группу. В зависимости от того, какой язык вы используете, первая группа может быть всей записанной строкой, и вам может потребоваться проверить вторую группу.

person Andrew    schedule 27.12.2019
comment
большое спасибо за быстрый ответ. Я пробовал приведенный выше код вызывать ошибку sequence ( ...) not recognized. Я использую регулярное выражение на языке coldfusion с функцией ReMatch (). - person Sathish Chelladurai; 27.12.2019
comment
Что ж, эта ошибка должна быть связана с тем, как вы используете их в Coldfusion (очевидно, он не поддерживает просмотр назад). Если вы проверите эти регулярные выражения, они будут работать нормально. Что касается ответа Алекса, будьте осторожны, он не учитывает '. Это будет иметь значение, если вы не всегда получаете атрибуты между ". Вам нужно будет удвоить ', чтобы он заработал (без кавычек). - person Andrew; 27.12.2019
comment
@ Андрей, спасибо, ты прав. Чтобы заставить его работать с двойными или одинарными кавычками, было бы домашним заданием CSK. - person Alex Baban; 28.12.2019
comment
Я упомянул об этом, потому что одинарная кавычка уже присутствовала в исходном регулярном выражении CSK. :) - person Andrew; 28.12.2019