Я не самый опытный с возможностями jQuery, но вы можете попробовать это выражение:
/class=".*?caption\['((?:\\'|[^'])*)'/m
Я знаю, что он способен найти любой атрибут class
с классом caption
иформатирование, которое у вас есть выше, внутри любой строки и сопоставление содержимого одинарных кавычек ('
), что позволяет использовать одиночные кавычки (\'
).
С этим HTML:
<span class="special caption['This <em>expression</em> describes this element.']">ABC</span>
<span class="special caption['This <em style=\'color: #FF0000;\'>expression</em> describes this element.']">ABC</span>
он находит два совпадения (в группе захвата 1):
This <em>expression</em> describes this element.
This <em style=\'color: #FF0000;\'>expression</em> describes this element.
Надеюсь, это поможет вам!
JavaScript не имеет заглядывания, иначе я бы предоставил решение, которое соответствует только желаемому тексту - это можно сделать с двумя выражениями, если вы можете получить только полное совпадение и не можете получить доступ к первой группе совпадений.