regex 正则表达式来过滤冒号分隔的列表

cwtwac6a  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(125)

我使用Word列表更新程序2.7的Windows,我需要一个正则表达式来过滤以下类型的列表。
下面是哈希列表:

Administrator:500:90lpA5CghgfF29A2D3A5A251441B67ju:2C3D3AF3B94337C248DE0C5A75AEAE1F:Built-in account for administering the computer/domain::

Guest:501:00000000000000000000000000000000:00000000000000000000000000000000:Built-in account for guest access to the computer/domain::

user:1002:00000000000000000000000000000000:F814ABE8BC04A52B0F4B503E2C80E037:::

paulenia1:1003:00000000000000000000000000000000:69C3A5C191AF29A2D3A5A251441B4E63:::

所以首先我只需要提取每一行的这一部分:

2C3D3AF3B94337C248DE0C5A75AEAE1F
F814ABE8BC04A52B0F4B503E2C80E037
69C3A5C191AF29A2D3A5A251441B4E63

然后

administrator:2C3D3AF3B94337C248DE0C5A75AEAE1F
user:F814ABE8BC04A52B0F4B503E2C80E037
paulenia1:69C3A5C191AF29A2D3A5A251441B4E63
bz4sfanl

bz4sfanl1#

对于初学者,您可以使用以下方法:
∮ ∮ ∮ ∮ ∮一个月一个月

  • 对于每一行,
  • 它在开始处捕获字符和数字串,
  • 后面是冒号,
  • 后面跟着一些数字,
  • 后面跟随一个(或多个)具有尾随冒号的可选零组,
  • 随后是捕获的字符和数字组,
  • 后跟冒号。

查看实际应用:https://regex101.com/r/gU0oJ6/1
当然,它还捕获了"Guest"用户的零散列,但是您可能仍然需要它来进行比较,或者在处理捕获的字符串时直接丢弃它。
您要求使用正则表达式,但正如注解中所建议的,您也可以简单地在冒号处拆分字符串,下面是一个JavaScript实现:

var arr = [
    'Administrator:500:90lpA5CghgfF29A2D3A5A251441B67ju:2C3D3AF3B94337C248DE0C5A75AEAE1F:…',
    'Guest:501:00000000000000000000000000000000:00000000000000000000000000000000:…',
    'user:1002:00000000000000000000000000000000:F814ABE8BC04A52B0F4B503E2C80E037:…',
    'paulenia1:1003:00000000000000000000000000000000:69C3A5C191AF29A2D3A5A251441B4E63:…'
];
arr.forEach(function(str){
    var split = str.split(':');
    if(split.length >= 4 && !/0{32}/.test(split[3]))
        document.writeln(split[0] + ':' + split[3] + '<br>');
});
body{font-family:sans-serif;font-weight:bold;font-size:large;color:#0087DE;text-shadow:1px 1px 0 #777;}

相关问题