/ / Ako nahradiť všetky medzery okrem priestorov v "a b" v RegEx? javascript, regex

Ako nahradiť všetky medzery okrem priestorov vo vnútri "a b" v RegEx? javascript, regex

Ako by som nahradil všetky medzery znakom "_" okrem medzery medzi znakmi "a" a "b", ako napríklad "a b".

// this is what I have so far to save someone time (that"s a joke)
var result:String = string.replace(/ /g, "_");

To je v jazyku JavaScript.

odpovede:

4 pre odpoveď č. 1

Použi toto:

var result:String = string.replace(/([^a]) | ([^b])/g, "$1_$2");

Zjednodušené vysvetlenie je, že nahrádza priestor, ktorý buď:

  1. predchádza iný charakter ako a
  2. nasleduje iná postava ako b

Poznámka: ak chcete generalizovať regex tak, aby obsahoval karty a nové riadky, použite s, ako toto:

var result:String = string.replace(/([^a])s|s([^b])/g, "$1_$2");

2 pre odpoveď č. 2

Skúste tento regex:

/(?!a)s(?!b)/g

edit: Toto nie je najlepšie riešenie, ako zdôraznil KendallFrey.