Удалите повторяющиеся символы с помощью регулярного выражения - PullRequest
1 голос
/ 10 июля 2020

Как бы вы удалили повторяющиеся символы в регулярном выражении, когда некоторые символы должны повторяться?

Например, у меня есть «BBAALLLLOOOONN», и я хочу, чтобы результат был просто BALLOON.

Я пробовал это регулярное выражение: /(.)(?=\1)/g, но результатом будет «BALON» вместо «BALLOON».

Ответы [ 2 ]

3 голосов
/ 10 июля 2020

Используйте

regexprep(line, '([A-Za-z])\1', '$1')

См. proof

() - это группа захвата, на которую ссылаются с помощью \1, \1 использует повторяющийся символ и только захваченная буква возвращается для каждого совпадения, поскольку шаблон замены - это обратная ссылка $1.

1 голос
/ 10 июля 2020

не используйте опережающий просмотр. замените (.) \ 1 на \ 1.

В ruby это будет "BBAALLLLOOOONN".gsub(/(.)\1/, '\1')

...