Регулярное выражение для соответствия строке значения ключа css

1

Я использую регулярное выражение для соответствия значениям css.

Введите строку для соответствия

 font-size:25px;font-family:georgian;content:"' unicode given in pseudo © '";

Регулярное выражение, которое я использую для совпадения

/.*\bcontent:(\s*[^;]*)/

Я использую $ 1, чтобы получить фактический вывод строки регулярного выражения

Ожидаемый результат: "unicode, указанный в псевдо-# 169 " **

Но актуальным является "unicode", приведенный в pseudo & # 169

Потому что регулярное выражение находит ; в значении контента, чтобы он ломался. Итак, как я могу исправить эту ошибку. В идеале регулярное выражение должно искать последнее ; который не находится внутри двойных/одинарных кавычек. Потому что моя строка ввода всегда будет иметь ; после завершения каждого значения свойства.

Спасибо

  • 0
    Попробуйте /.*\bcontent:\s*(.*);/ чтобы соответствовать до последнего ; символ на линии. Или просто /\bcontent:\s*"([^"]*)";/ ( демо )
  • 0
    Попробуйте \bcontent:\s*(".*?"); посмотрите это демо .
Теги:
pattern-matching
regex-greedy

1 ответ

2

Упростите это: возьмите фрагмент текста в кавычках:

/.*\bcontent:(\"[^\"]*\")/
  • 0
    Gr8, у меня сработало.
  • 0
    Если кто-то хочет упростить шаблон, его следует опустить .* В шаблоне. Как и в моем комментарии, достаточно использовать /\bcontent:("[^"]*")/ (я просто поместил группу захвата в кавычки, чтобы исключить их из совпадения).
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню