2014-11-12 2 views
1

Как достичь желаемого результата?Регулярное выражение: удалить пространство вокруг одного символа (ов)

Целевая строка: "Text where s o m e parts are s h r u n k"

Regex: (\s+)(\S)\s+

Repalce с: $2

Желаемый результат: Text where some parts are shrunk

Текущий результат: Text wheresome parts areshrunk

+1

Как вы собираетесь обрабатывать экземпляры, в которых используется символ 'a'. Пример: 'a w o r d' –

+0

Используйте границы слов: '\ b'. \ s + (\ b \ S \ b) \ s + – OnlineCop

+0

Это юридическое название объекта, поэтому я не ожидаю наличия такой грамматической детали в тексте ... – ostati

ответ

1

Поиск: \b(\S)\s+(?=\S\b) Заменить: $1 (без пробелов до/после)

regex101 example

Это использует смотреть вперед, что сначала ищет сингулярный характер (разделенный пробелом), а затем «заглядывает вперед», чтобы увидеть, если больше особых символы происходят дальше по линии. Если это так, замените результат только захваченным символом, удалив все лишние пробелы между ними.

+0

Ницца! Не могли бы вы добавить некоторые объяснения вокруг него? – ostati

+1

'Это не действительное решение' – Madbreaks

+0

Это работает, ему просто нужна замена за 1 доллар. Вот почему это недействительно? – ostati

Смежные вопросы