-2

я хочу удалить все строки, содержащие менее 3 букв в имени пользователя до или после любых других символов, но мне не нужно ничего менять в пароле, поэтому я говорю перед ":"

Полный пример файла, содержащего:

@user1example:keepline6
~!@#$%^&*(1)_+:deleteline1
..........:deleteline2
[45364\H]..;".:deleteline3
t!esting.1:keepline9
...+++#$29:deleteline4
5666D6666X67:deleteline32
namestart:keepline0
..............:deleteline8
____________:deleteline7
~!@#$%^&*()+=_-[]{}\/';.<>,:deleteline11
1start$go2deep_:keepline20
#(gold2bestar):keepline15
%%....^\/~`"':deleteline50
...e...y%%..~@:deleteline14
A``!!!!236g...:deleteline17
username9example1:5password0example1
554425$%^921:deleteline18
+++++++++++++++++:deleteline74
use123:keepline100
.....E_______:deleteline43
!!!!!!!!!!!P:deleteline47
Dy!!..,,(_)*&:deleteline49
&####...$,,,,,FW:deleteline66
4644848We:deleteline84
Zx5654644889:deleteline96
21Gt:deleteline89
@dF.:deleteline67
username@gmail.com:password12
¥5G5Y.....:deleteline94
user@yahoo.com:password1

Нужен результат:

@user1example:keepline6
t!esting.1:keepline9
namestart:keepline0
1start$go2deep_:keepline20
#(gold2bestar):keepline15
username9example1:5password0example1
use123:keepline100
username@gmail.com:password12
user@yahoo.com:password1

1 ответ1

2
  • Ctrl+H
  • Найдите что: ^(?:[^a-z]*[a-z]){0,2}[^a-z:]*:.*\R|^[^:]{0,2}:.*\R|^[^:]*:.{0,2}\R
  • Заменить на: EMPTY
  • Заменить все

Объяснение:

^               : begining of line
  (?:           : start non capture group
    [^a-z]*     : 0 or more any character that is not a letter
    [a-z]       : a letter
  ){0,2}        : group is repêated up to 2 times
  [^a-z:]*      : 0 or more character that is not letter or :
  :             : literally :
  .*            : 0 or more any character
  \R            : any kind of line break

 |              : OR

^               : begining of line
  [^:]{0,2}     : 0 up to 2 character that is not :
  :             : literally :
  .*            : 0 or more any character
  \R            : any kind of line break

 |              : OR

^               : begining of line
  [^:]*         : 0 or more character that is not :
  :             : literally :
  .{0,2}        : up to 2 any character
  \R            : any kind of line break
  • НЕ ПРОВЕРИТЬ . matches newline

Результат для данного примера:

@user1example:keepline6
t!esting.1:keepline9
namestart:keepline0
1start$go2deep_:keepline20
#(gold2bestar):keepline15
username9example1:5password0example1
use123:keepline100
username@gmail.com:password12
user@yahoo.com:password1

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