用于隐藏前两个 IP 地址八位字节的正则表达式

t20*_*022 5 regex powershell

我已经使用 powershell 使用以下正则表达式命令来“x”IP 地址的前两个八位字节;

-Replace '(?=\d{1,3}\.\d{1,3}\.)\d', 'x'

在以下数据集上;

10.101.11.11
101.11.11.11
2003.12.11
Run Code Online (Sandbox Code Playgroud)

我明白了;

xx.xxx.11.11
xxx.xx.11.11
2xxx.12.11
Run Code Online (Sandbox Code Playgroud)

它根据需要正确格式化 IP 地址,但我似乎无法让它忽略带有 . 在他们中

Wik*_*żew 3

您可以使用

(?:\G(?!^)|\b)\d(?=\d{0,2}\.\d{1,3}\.)
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示细节

  • (?:\G(?!^)|\b)- 单词边界或上一个成功匹配的结尾
  • \d- 一个数字
  • (?=\d{0,2}\.\d{1,3}\.)- 紧跟零到两位数字的位置 + . + 一到三位数字 + .