Я использую регулярное выражение для соответствия значениям css.
Введите строку для соответствия
font-size:25px;font-family:georgian;content:"' unicode given in pseudo © '";
Регулярное выражение, которое я использую для совпадения
/.*\bcontent:(\s*[^;]*)/
Я использую $ 1, чтобы получить фактический вывод строки регулярного выражения
Ожидаемый результат: "unicode, указанный в псевдо-# 169 " **
Но актуальным является "unicode", приведенный в pseudo & # 169
Потому что регулярное выражение находит ;
в значении контента, чтобы он ломался. Итак, как я могу исправить эту ошибку. В идеале регулярное выражение должно искать последнее ;
который не находится внутри двойных/одинарных кавычек. Потому что моя строка ввода всегда будет иметь ;
после завершения каждого значения свойства.
Спасибо
Упростите это: возьмите фрагмент текста в кавычках:
/.*\bcontent:(\"[^\"]*\")/
.*
В шаблоне. Как и в моем комментарии, достаточно использовать /\bcontent:("[^"]*")/
(я просто поместил группу захвата в кавычки, чтобы исключить их из совпадения).
/.*\bcontent:\s*(.*);/
чтобы соответствовать до последнего;
символ на линии. Или просто/\bcontent:\s*"([^"]*)";/
( демо )\bcontent:\s*(".*?");
посмотрите это демо .