Re: text replace using regex in edit textarea

Petko Yotov <[email protected]> Fri, 23 Jan 2026 18:36:59 +0100
Newsgroups gmane.comp.web.wiki.pmwiki.user
Message-ID <[email protected]>
SSB3b3VsZCByZXVzZSB0aGUgY29yZSBKYXZhU2NyaXB0IEdVSUVkaXQgZnVuY3Rpb25zIGFuZCB0
aGUgUG1MaWIgCmhlbHBlcnMgYXZhaWxhYmxlIHNpbmNlIFBtV2lraSAyLjQuMCAobGF0ZXN0IHJl
Y29tbWVuZGVkKS4KCkNyZWF0ZSBhIGZpbGUsIHNheSBwdWIvbXlyeHJlcGxhY2UuanMsIGFuZCBw
dXQgaW4gaXQgc29tZXRoaW5nIGxpa2UgCnRoaXM6CgogICBQbUxpYi5yZWFkeShmdW5jdGlvbigp
ewogICAgIGNvbnN0IHsgZHFzLCBkY2UsIGFkamJlLCB0YXAgfSA9IFBtTGliOyAvLyBpbXBvcnQg
aGVscGVycwoKICAgICBjb25zdCBjb250YWluZXIgPSBkcXMoJ3NwYW4uR1VJQnV0dG9ucycpOwog
ICAgIGlmKCFjb250YWluZXIpIHJldHVybjsKICAgICBjb25zdCBidXR0b24gPSBkY2UoJ2lucHV0
Jywge3R5cGU6J2J1dHRvbicsIHZhbHVlOidSWFInfSk7CiAgICAgYWRqYmUoY29udGFpbmVyLCBi
dXR0b24pOyAvLyBhZGQgYmVmb3JlIHRoZSBlbmQgb2YgR1VJQnV0dG9ucwoKICAgICBmdW5jdGlv
biByZXBsYWNlX2luX3NlbGVjdGlvbihzZWxlY3Rpb24pIHsKICAgICAgIGlmKHNlbGVjdGlvbj09
PScnKSByZXR1cm4gJyc7CiAgICAgICBsZXQgcmVzdWx0ID0gc2VsZWN0aW9uCiAgICAgICAgIC5y
ZXBsYWNlKC9cclxuPy9nLCAiXG4iKSAvLyBub3JtYWxpemUgbGluZSBicmVha3MKICAgICAgICAg
LnJlcGxhY2UoLyAqKFxuICopKy9nLCAnICcpICAgIC8vIGpvaW4gbGluZXMKICAgICAgICAgLnJl
cGxhY2UoL3Btd2lraS9pZywgJ1BtV2lraScpIC8vIGZpeCBjYXBpdGFsaXphdGlvbgogICAgICAg
ICAvLyBhZGQgeW91ciBvd24KICAgICAgIDsKICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQoK
ICAgICB0YXAoYnV0dG9uLCBmdW5jdGlvbigpeyAvLyBvbmNsaWNrCiAgICAgICBpbnNNYXJrdXAo
cmVwbGFjZV9pbl9zZWxlY3Rpb24pOwogICAgIH0pOwogICB9KTsKCkVuYWJsZSB0aGlzIHNjcmlw
dCBpbiBsb2NhbC9jb25maWcucGhwLCBhc3N1bWVzICRFbmFibGVHVUlCdXR0b25zIGlzIAplbmFi
bGVkOgoKICAgaWYoJGFjdGlvbj09J2VkaXQnKSAkSFRNTEhlYWRlckZtdFsnbXlyeHJlcGxhY2Un
XQogICAgICA9ICc8c2NyaXB0IHNyYz0iJFB1YkRpclVybC9teXJ4cmVwbGFjZS5qcyI+PC9zY3Jp
cHQ+JzsKClRoZSAiY29uc3QgYnV0dG9uLi4uIiBwYXJ0IGlzIHRoZSBidXR0b24gYWRkZWQgdG8g
dGhlIGVuZCBvZiB0aGUgR1VJIApidXR0b25zIGNvbnRhaW5lci4gVGhlIHZhbHVlICdSWFInIGlz
IHRoZSBidXR0b24gbGFiZWwsIG9idmlvdXNseSB5b3UgCmNhbiBjaGFuZ2UgaXQsIG9yIGV2ZW4g
dXNlIGFuIGVtb2ppLgoKU2VsZWN0IHNvbWUgdGV4dCBpbiB0aGUgZWRpdCB0ZXh0YXJlYSBhbmQg
Y2xpY2sgb24gdGhlIGJ1dHRvbi4gVGhpcyB3aWxsIApjYXVzZSB0aGUgZnVuY3Rpb24gcmVwbGFj
ZV9pbl9zZWxlY3Rpb24oKSB0byBiZSBjYWxsZWQgd2l0aCBhcmd1bWVudCB0aGUgCmN1cnJlbnQg
c2VsZWN0aW9uIHRleHQuIEl0IHNob3VsZCBtYWtlIHRoZSByZXBsYWNlbWVudHMgYW5kIGNoYW5n
ZXMsIAp0aGVuIHJldHVybiB0aGUgcmVzdWx0IHdoaWNoIHdpbGwgYmUgaW5zZXJ0ZWQgaW4gcGxh
Y2Ugb2YgdGhlIHNlbGVjdGlvbiAKaW4gdGhlIGVkaXQgdGV4dGFyZWEuCgpJIHdvdWxkIGFsc28g
ZW5hYmxlICRFbmFibGVQcmV2aWV3Q2hhbmdlcyA9IDE7IGFuZCBwcmVzcyAiUHJldmlldyIgdG8g
CnNlZSBteSBjaGFuZ2VzIGJlZm9yZSBzYXZpbmcgdGhlIHBhZ2UuCgpVc2luZyB0aGUgYnVpbHQt
aW4gaGVscGVyIGZ1bmN0aW9ucyBpcyBtdWNoIHNpbXBsZXIgYW5kIGVhc2llciB0aGFuIApkb2lu
ZyBpdCBpbiBwbGFpbiBKYXZhU2NyaXB0LCB5b3UgZG9uJ3QgbmVlZCB0byBsb2NhdGUgdGhlIHRl
eHRhcmVhLCAKZGV0ZWN0IHRoZSBzZWxlY3Rpb24sIGhhbmRsZSB1bmRvL3JlZG8sIHN5bmMgd2l0
aCBQbVN5bnRheCwgZXZlcnl0aGluZyAKd29ya3MgdW5kZXIgdGhlIGhvb2QuCgpQZXRrbwoKLS0g
CklmIHlvdSB1cGdyYWRlIDogIGh0dHBzOi8vd3d3LnBtd2lraS5vcmcvVXBncmFkZXMKCk9uIDIz
LzAxLzIwMjYgMTc6MDcsIEhhbnMgQnJhY2tlciB3cm90ZToKPiBIaSBQZXRrbywgSSBhbSB3b25k
ZXJpbmcgaWYgdGhlcmUgaXMgYSB3YXkgdG8gYWRkIGEgY3VzdG9tIGd1aWJ1dHRvbgo+IGFuZC9v
ciBrZXlib2FyZCBzaG9ydGN1dCB0byBkbyBhIGN1c3RvbSB0ZXh0IHJlcGxhY2Ugb24gYSB0ZXh0
Cj4gc2VsZWN0aW9uIGluIHRoZSBzdGFuZGFyZCBlZGl0IHRleHRhcmVhPwo+IAo+IEkgd291bGQg
bGlrZSB0byBzZWxlY3Qgc29tZSB0ZXh0IGluIHRoZSBlZGl0IHRleHRhcmVhLCBsaWtlIGEKPiBw
YXJhZ3JhcGgsIG9yIG1vcmUsIGZyb20gYSBsb25nZXIgcGFnZSB0ZXh0LCBhbmQgdGhlbiB2aWHC
oCBhIGJ1dHRvbgo+IGNsaWNrIG9yIGEga2V5Ym9hcmQgc2hvcnRjdXQgaGF2ZSBhIHJlZ3VsYXIg
ZXhwcmVzc2lvbiByZXBsYWNlIGRvbmUgb24KPiB0aGlzIHRleHQuIEluIHBhcnRpY3VsYXIgSSBs
aWtlIHRvIHN0cmlwIG91dCBuZXdsaW5lIFxuIGFuZCByZXBsYWNlCj4gd2l0aCBzaW1wbGUgc3Bh
Y2UsIHRvIHVuZG8gZm9ybWF0dGluZyBmcm9tIGluc2VydGVkIHBkZiB0ZXh0LiBJIGNhbiBkbwo+
IHRoaXMgaW4gbXkgY29kZSBlZGl0b3IsIGJ1dCBjb3B5aW5nIGFuZCBwYXN0aW5nIHBhcmFncmFw
aHMgYmFjayBhbmQKPiBmb3J3YXJkIGlzIGEgaGFzc2xlLiBJZGVhbGx5IEkgbGlrZSB0byBjaG9v
c2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwKPiBvciBzZXQgdXAgZGlmZmVyZW50IGN1c3RvbSAi
cmVnZXggdGV4dCByZXBsYWNlIiBidXR0b25zLgo+IAo+IEkgZG9uJ3Qga25vdyBpZiBpIG5lZWQg
dG8gaGFjayB0aGUgZ3VpZWRpdCBqYXZhc2NyaXB0LCBvciBob3cgdG8gYWRkCj4gdGhlIGZ1bmN0
aW9uYWxpdHkgaW4gamF2YXNjcmlwdC4gU29tZSBhZHZpY2Ugd291bGQgYmUgZ3JlYXRseQo+IGFw
cHJlY2lhdGVkIQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KcG13aWtpLXVzZXJzIG1haWxpbmcgbGlzdApwbXdpa2ktdXNlcnNAcG1pY2hhdWQuY29tCmh0
dHA6Ly93d3cucG1pY2hhdWQuY29tL21haWxtYW4vbGlzdGluZm8vcG13aWtpLXVzZXJzCg==