Как бы мне написать регулярное выражение для выполнения операции поиска / замены, чтобы добавить пробел после 10 цифр любого числа длиной 20 цифр?

У меня есть длинный список телефонных номеров, некоторые из которых случайно имеют длину 20 цифр, и мне нужно добавить пробел между ними.

Изменить: я пытался \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d \d, который выбирает 20-значные числа, но замена этого пробела просто заменит все 20 цифр пустым пробелом, а не вставит пробел после 10 цифр.

Я пытаюсь сделать это с помощью Sublime Text на MacBook Pro.

1 ответ1

2

вам нужно использовать группы захвата, если вы хотите выполнять операции замены при сохранении компонентов исходной строки.

Ваше регулярное выражение будет следовать что-то вроде:

pattern: "^([\d]{10})([\d]{10})" //two groups of 10

заменить: "$1 $2"

Скобки вокруг каждого шаблона для блока из десяти определяют группу захвата. поэтому мы говорим: «первые десять цифр в группе $ 1, а вторые 10 в группе $ 2». тогда мы просто говорим «напечатать группу 1, добавить пробел и напечатать группу 2».

Обратите внимание, что каждая платформа отличается с точки зрения синтаксиса Regex и заменяет синтаксис. многие используют $number (например, sed), другие используют \number (например, notepad++), поэтому обязательно обратитесь к документации по вашему продукту.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .