ECMAScript では、これが私が使用している正規表現です。
replace(/\[(.+)\s+->\s+([^\]]+)]/g, '<a class=adl_btnlnk href="$2">$1</a>');
次の文字列では問題ありません。
"[INNER\"',';!@#$%^&*gobbeldygook -> -> -> http://li.nk?u=r&l]"
...それはまさに私が必要としているものです。しかし、私が持っているときはどうですか:
"[INNER\"',';!@#$%^&*gobbeldygook -> -> -> http://li.nk?u=r&l] laksjfalksdjf98723&*(*&(*@&#$ [foo -> http://li.nk]"
壊れたリンクが 1 つ生成されます。
"<a class=adl_btnlnk href="http://li.nk">INNER"',';!@#$%^&*gobbeldygook -> -> -> http://li.nk?u=r&l] laksjfalksdjf98723&*(*&(*@&#$ [foo</a>"
どうすればそれを作ることができますか:
"<a class=adl_btnlnk href="http://li.nk?u=r&l">INNER"',';!@#$%^&*gobbeldygook -> -></a> laksjfalksdjf98723&*(*&(*@&#$ <a class=adl_btnlink href="http://li.nk">foo</a>"