Sto usando regex per sostituire (
in altre espressioni regolari (o espressioni regolari?) Con (?:
per trasformarle in gruppi non corrispondenti. La mia espressione presuppone che non (?X
strutture vengono utilizzati e si presenta così:Sostituisci tutte le corrispondenze carattere che non sono sfuggite con barra rovesciata
(
[^\\] - Not backslash character
|^ - Or string beginning
)
(?:
[\(] - a bracket
)
Purtroppo questo non funziona nel caso in cui ci sono due partite uno accanto all'altro, come in questo caso: how((\s+can|\s+do)(\s+i)?)?
Con lookbehinds, la soluzione è semplice:
/(?<=[^\\]|^)[\(]/g
Ma javascript non sup port lookbehinds, quindi cosa posso fare? Le mie ricerche non hanno portato nessuna alternativa universale facile da guardare.
E il primo gruppo di cattura rimane ancora. –
@stribizhev forse ho frainteso l'OP. Sembra che abbiamo bisogno di un esempio del risultato completo desiderato – AwokeKnowing
Credo che il risultato desiderato sia "" come (?: (?: \ S + può | \ s + do) (?: \ S + i)?)? "' . – nrabinowitz