Chciałbym zamienić wszystkie ciągi, które są ujęte w -
na ciągi znaków dołączone przez ~
, ale nie, jeśli ten ciąg ponownie jest zawarty w *
.Nie zastępuj wyrażenia regularnego, jeśli jest ono zamknięte znakiem
Jako przykład tego ciągu ...
The -quick- *brown -f-ox* jumps.
... powinien stać ...
The ~quick~ *brown -f-ox* jumps.
Widzimy -
otrzymuje tylko jeśli jest nie ciągu *<here>*
.
Moje javascript regex teraz (co trwa nie obchodzi, czy jest on zamknięty przez *
lub nie):
var message = source.replace(/-(.[^-]+?)-/g, "~$1~");
EDIT: Należy pamiętać, że to może być tak, że jest nieparzysta liczba *
s .
Dlaczego spadamy? – poitroae
Tak, jestem zdziwiony, takie dobre pytanie. – Jai
Co w przypadku nieparzystej liczby znaków *? Na przykład. '* -szybki- * brązowy * -f-ox * przeskakuje * .' Które znaki' -' powinny zostać zastąpione i dlaczego? –