У меня есть простой текст, используемый для генерации HTML, это текст:Regex удалить одиночные кавычки внутри одинарных кавычек внутри текста
lots of stuff
<a onclick="javascript:do_things('http://somelink.to.something.com', 'string'with'bad'quotes'');">
lots of stuff
Структура текста всегда то же самое, потому что текст в свою очередь, но последняя строка, используемая в качестве аргумента функции javascript, может измениться, она может иметь любое количество одинарных кавычек или вообще не указывать. Я хочу, чтобы заменить эти цитаты с \», так что результат:
lots of stuff
<a onclick="javascript:do_things('http://somelink.to.something.com', 'string\'with\'bad\'quotes\'');">
lots of stuff
Я получил это далеко:
onclick="javascript:do_things\('.*', '(.*)'\)
, что дает мне этот матч:
string'with'bad'quotes'
Но я убежище Мне не удалось сопоставить кавычки внутри, я имею в виду, что я мог бы сопоставить цитату с .*'.*
, но как мне сопоставить любое количество котировок в любой позиции?
Thanks
Невозможно исправить подстроку до того, как она будет конкатенирована в большую строку? –
К сожалению, это уже есть в производстве, и я могу только изменить бэкэнд, обрабатывающий этот текст. – fuaaa
Поскольку у вас уже есть текст '' string'with'bad'quotes''', почему бы не просто '' preg_replace ("/ '/", "\\'", "string'with'bad'quotes"); ' '? –