regex - 使用正则表达式拆分从IP地址中删除第一个八位位组

标签 regex powershell

我正在尝试从IP地址中删除第一个八位字节,包括开头的.,但我正在尝试使用Regex,但无法弄清楚使用它的正确方法。这是我的代码

'47.172.99.12' -split '\.(.*)',""

我想要的结果是
172.99.12

最佳答案

.字符在Regex模式中具有特殊含义:它匹配除换行符以外的任何字符。您需要对它进行转义以匹配一个字面量:

'47.172.99.12' -split '\.(.*)',""
                       ^

但是请注意,这将返回比您所需更多的结果:

PS > '47.172.99.12' -split '\.(.*)',""
47
172.99.12

PS >

要获得所需的内容,可以在1处为结果建立索引:

PS > ('47.172.99.12' -split '\.(.*)',"")[1]
172.99.12
PS >

也就是说,将Regex用于此任务有些过分。您可以简单地使用 String.Split 方法代替:

PS > '47.172.99.12'.Split('.', 2)[1]
172.99.12
PS >

关于regex - 使用正则表达式拆分从IP地址中删除第一个八位位组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061062/

相关文章:

powershell - 如何使用invoke-sqlcmd访问数据集中表的特定列?

powershell - 在 Powershell 5.1 中与 Base64 相互转换

Windows 7 上的 powershell Get-Counter -ComputerName 参数

internet-explorer - 如何使用Powershell在Internet Explorer中更改设置?

python - 复杂的正则表达式在 Spacy 实体标尺中不起作用

regex - 使用 FINDSTR 转义批处理文件中的反斜杠

javascript - 如何将下一个字符串分组?

regex - 在 Perl 中覆盖区分大小写的正则表达式

php - 什么取决于何时在特定的 "composition"中考虑字符?

azure - 设置-AzContext : Please provide a valid tenant or a valid subscription