如何使用正则表达式从部分行中删除非字母或数字的内容?

如何使用正则表达式从部分行中删除非字母或数字的内容?

如何从 txt 文件的部分行中删除非字母或数字的内容?

我还有更多的username:password解释username;password

我想只编辑用户名,并删除其中除字母或数字以外的所有内容,而不修改密码。我想使用正则表达式来执行此操作,因为我正在使用 Emeditor 处理大型文件,并且我相信正则表达式在和中都Notepad++有效Emeditor

我试过什么?
我确实用过,Find: [^a-z0-9:;]+但之后无法跳过密码:,所以;我想做的是跳过从和开始的行:password here;password here并且只从用户名中删除不带字母或数字的字符。

抱歉,如果我没有描述清楚,管理员可以尽可能进行编辑。

完整示例:

!start._1:stop.~1@
Sta%rs&:B!ge(s+R}\
#Step[14,:St,./\Ert`
~user@#%name^*)+:P@$$wor'";D
T&*est~!@#$%^&*()_+={}|\;pass;word123
user@#%name;password!#$~`'123
45Star^5#$Lord1:@T1esting!
u~s#e%r^n&a*m(e)t_e+s-t,:Pa:ssw/orD$+;

所需结果:

start1:stop.~1@
Stars:B!ge(s+R}\
Step:St,./\Ert`
username:P@$$wor'";D
Test;pass;word123
username;password!#$~`'123
45Star5Lord1:@T1esting!
usernametest:Pa:ssw/orD$+;

答案1

这不可能一次性完成。
以下是使用多个步骤完成此工作的方法:

  • Ctrl+H
  • 找什么:^([^a-z0-9;:]*)([a-z0-9]*)(?1)(.*?[;:].+$)
  • 用。。。来代替:$2$3
  • 取消勾选匹配大小写
  • 检查环绕
  • 检查正则表达式
  • 请勿检查. matches newline
  • Replace all (点击此处多次,每次仅替换部分无效字符)

解释:

^                   : begining of line
  (                 : start group 1
    [^a-z0-9;:]*    : negative character class, 0 or more any character that is not alpha-num or colon or semicolon
  )                 : end group 1
  (                 : start group 2
    [a-z0-9]*       : character class, 0 or more alpha-num
  )                 : end group 2
  (?1)              : re-use the pattern in group 1 (ie. [^a-z0-9;:]*)
  (                 : group 3
    .*?             : 0 or more any character but newline, not greedy
    [;:]            : a colon or semicolon (the first that exists in a line)
    .+              : 1 or more any character but newline (the password)
    $               : end of line
  )                 : end group 3

替代品:

$2      : content of group 2, the alpha-num part of the name
$3      : content of group 3, rest of the line

给定示例的结果:

start1:stop.~1@
Stars:B!ge(s+R}\
Step14:St,./\Ert`               <== I guess there is a typo in your request
username:P@$$wor'";D
Test;pass;word123
username;password!#$~`'123
45Star5Lord1:@T1esting!
usernametest:Pa:ssw/orD$+;

相关内容