Как я могу использовать регулярное выражение JS, чтобы заменить все вхождения пространства словом SPACE, если между скобками? Итак, я хочу это:
myString = "a scentence (another scentence between brackets)"
myReplacedString = myString.replace(/*some regex*/)
//myReplacedString is now "a scentence (anotherSPACEscentenceSPACEbetweenSPACEbrackets)"
EDIT: что я пробовал это (я совершенно новый для регулярных выражений)
myReplacedString = myString.replace(/\(\s\)/, "SPACE");
Возможно, вы можете использовать регулярное выражение:
/\s(?![^)]*\()/g
Это будет соответствовать любому пространству без открытой скобки впереди, без закрывающей скобки между пространством и открывающей скобкой.
Здесь демонстрация.
EDIT: Я не рассматривал случаи, когда предложения не заканчиваются скобками. Регулярное выражение @thg435 покрывает его, однако:
/\s(?![^)]*(\(|$))/g
/\s(?![^)]*(\(|$))/
, Чтобы обработать что-то вроде xx (xx xx) xx xx
.
Я не уверен в одном регулярном выражении, но вы можете использовать два. Один, чтобы получить строку внутри ()
, затем другую, чтобы заменить ' '
на 'SPACE'
.
myReplacedString = myString.replace(/(\(.*?\))/g, function(match){
return match.replace(/ /g, 'SPACE');
});