Как сопоставить строку из 10 символов, заканчивающуюся 2 цифрами? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть список строк в этой форме

1:nlcbjduy14 <- I want regex to find this one 
2:Peoples123 <- I don't want regex to find this one, as it has 3 digits.
3:sqourzyr17 <- I want regex to find this one
4:rdmaszgr94 <- I want regex to find this one
5:tnwiudic22 <- I want regex to find this one
6:zfcxmkrs21 <- I want regex to find this one
7:xrwhsgno55 <- I want regex to find this one
8:modtwtrr06 <- I want regex to find this one
9:People123  <- I don't want regex to find this one, as it is isn't 10 chars long and it consists of 3 digits.
10:aetmyqqh52 <- I want regex to find this one
11:Howtocodelikeapro12 <- I don't want regex to find this one, as it is isn't 10 chars long
12:netphvib58 <- I want regex to find this one
13:uwyiqhoj29 <- I want regex to find this one
14:RegexJustiIsntDoingItForMe
15:qyeiaecj27 <- I want regex to find this one
16:buttercake <- I don't want regex to find this one, as it doesn't end with 2 digits.
17:bcyiyjdm23 <- I want regex to find this one
18:Differings <- I don't want regex to find this one, as it doesn't end with 2 digits.

То, что я ищу, это какое-то регулярное выражение для замены всех 10-символьных строк, оканчивающихся на макс. 2 цифры.

После замены этих строк это будет выглядеть так:

1:REPLACED
2:Peoples123
3:REPLACED
4:REPLACED
5:REPLACED
6:REPLACED
7:REPLACED
8:REPLACED
9:People123
10:REPLACED
11:Howtocodelikeapro12
12:REPLACED
13:REPLACED
14:RegexJustiIsntDoingItForMe
15:REPLACED
16:buttercake
17:REPLACED
18:Differings

Может ли кто-нибудь дать мне пример регулярного выражения, которое будет работать? Я не смог найти другие (понятные) вопросы по этому поводу в Stackoverflow, так как я не очень знаком с регулярными выражениями. Я пытаюсь сопоставить их в Notepad ++, а не на любом языке программирования.

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 16 мая 2019

Ну, не зная, какой вкус вы используете (если это PHP или python и т. Д.), Вам будет сложнее дать ответ, но попробуйте следующее:

\d+:\D{8}\d{2}

Я настоятельно рекомендую вам принятьНекоторое время изучаю Regex, так как это мощный инструмент.

Если вы хотите понять это регулярное выражение и узнать немного больше, перейдите по сюда

1 голос
/ 16 мая 2019

Попробуйте: это будет соответствовать только тексту после #:

(?<=\:)\D{8}\d{2}\b
  • (?<=\:) - положительный взгляд на символ :
  • \D{8} - ровно 8 не цифр
  • \d{2} - ровно 2 цифры
  • \b - граница слова (конец слова)

Используйте это, и выможет сохранить ваши номера, но заменить имена пользователей

0 голосов
/ 16 мая 2019

Вы можете попробовать это: Ссылка на Regex101

\W([A-Za-z]{8}\d{2})\W

Пояснение

  1. \W - совпадениялюбой символ, который не является ни буквенно-цифровым, ни подчеркиванием
  2. \W(...)\W - Группа в скобках - это то, что мы хотим.Это строка, которая не окружена ни буквенно-цифровыми, ни подчеркиваниями.Давайте назовем это «словом».
  3. [A-Za-z]{8} - Последовательная строка букв с точной длиной 8.
  4. \d{2} - Ровно две последовательные цифры.

Я не уверен насчет Notepad ++, но в большинстве случаев вы можете получить первую группу с помощью $1.Нулевой группой будет весь матч.

0 голосов
/ 16 мая 2019

Я думаю, что это RegEx работает:

:\D{8}\d{2}\D

Он состоит из: как начало ваших строк. Тогда у нас есть 8 нецифровых символов, 2-значных символа и что-то, что не является цифрой, чтобы предотвратить слишком длинные цифры. Он соответствует стандарту PCRE, поэтому должен работать с вашим редактором Notepad ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...