У меня есть строка, как H B O & Co
, и я хотел бы, чтобы удалить пробелы между H
, B
и O
решений HBO & Co
. В предыдущем вопросе я спросил (Remove spaces between words of a certain length), мне был дан очень полезный ответ, чтобы удалить пробелы в строках, например A & B Co
, чтобы сделать A&B Co
. Я хотел бы сохранить строки, такие как A&B Co
, но избегайте таких строк, как HBO& Co
. Для того, чтобы сделать это, я собирался просто запустить другое регулярное выражение над строками, чтобы исправить эти случаи:избежать «и» в регулярном выражении
gsub("(\\S\\S)\\&\\s", "$1 & ", "HBO& Co", perl=TRUE, ignore.case=TRUE)
Это, однако, не кажется, что правильный ответ, потому что он не использует $1
как группа захвата 1. Любой идеи?
Попробуйте '\ 1' вместо' $ 1'. – Asaph
Кроме того, '&' не является метасимволом в любом аромате регулярных выражений, с которыми я когда-либо сталкивался, поэтому вам не нужно бежать. – Asaph
yeh, добрый звонок на '\ 1' вместо' $ 1'. о чем это правило? – Alex