2016-07-27 2 views
-2

поиска регулярных выражений, где хранить все цифры с длиной 10-13 цифр и удалить все остальное в Notepad ++Regex - Держите все цифры с длиной 10-13 цифр

моего регулярного выражение не работает [^ \ D {10 , 13}]

находит числа с запятыми тоже :(

+0

Вы хотите удалить все номера, длина которых не превышает 10-13? –

+1

Два выражения будут проще: одно: '\ b \ d {1,9} \ b', а другое' \ b \ d {14,} \ b' <- их можно удалить. – Jan

+0

Проблема в том, что он находит числа с запятыми или вы хотите, чтобы они не находили числа с запятыми? –

ответ

1

Поиск

^(?:.*?(\d{10,13}).*|.*)$ 

и заменяя

\1 

вы держите только 10 до 13 (и пустые строки).

Удалить пустые строки поиска для

^\n 

и заменить ничем.

См. Его в действии: RegEx101.

Обращаясь к комментариям WiktorStribiżew: полагаясь на искомые номера, которые всегда будут окружены пробелом (который был проверен с помощью OP, но не для потенциального случая, строки (фактически) содержат только числа), выражение поиска может быть отрегулирован на

^(?:.*\s(\d{10,13})\s.*|.*)$ 

еще заменяете с

\1 

обрабатывать запятые держа строки чисел правильно: RegEx101

Кстати:

[^\d{10,13}] 

является класс персонажа, который соответствует ничего, что не:

  • номер, или
  • любой символ из «{10,3 } "(без кавычек, но включая фигурные скобки).

Прокомментируйте, если и как это требует корректировки/дальнейших подробностей.

+0

Этот подход предполагает, что на одной линии есть только один один * 10-13-значный кусок. –

+0

@ WiktorStribiżew: Вот как я понимаю вышеописанный комментарий OP [...] Каждая строка может содержать 10-13 длинное число и другой контент, такой как текст или короткие номера » – Abecee

+0

Тогда как вы интерпретируете * он находит числа с запятыми тоже *? Вы найдете '12345678901' в' 12,12345678901'. И вам не нужно регулярное выражение для удаления пустых строк, для этого есть пункт меню. Возможно, вы захотите использовать '\ R' для соответствия любой последовательности новой строки, а не использовать' \ n' в '^ \ n' –

0

Я не знаю, как это работает блокнот, но я думаю, что это регулярное выражение вы ищете:^([0-9]) {10,13} $

Хорошая страница для создания/проверки регулярного выражения: http://regexr.com/

1

Чтобы соответствовать номера, которые не точно длиной 3 цифры:

\b(\d{1,9}|\d{14,})\b 
1

Вы можете найти все 10-13 Длина автономные цифры, как этот

(?<!\d)\d{10,13}(?!\d)

Что вы делаете, то до вас.

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