PowerShell中match命令使用详解_PowerShell

1.筛选数组

本文介绍PowerShell中使用match操作符,配合正则表达式从数组中筛选出想要的内容。

先看下面这个例子:

PS C:\Users\Hong> (ipconfig) -match 'IPv4'
  IPv4 地址 . . . . . . . . . . . . : 192.168.1.102
  IPv4 地址 . . . . . . . . . . . . : 192.168.193.1
  IPv4 地址 . . . . . . . . . . . . : 192.168.93.1

我们知道ipconfig是显示当前计算机的TCP/IP配置信息的,其中有一项是IP地址。如果有多个网卡,或者一个网站上配置有多个IP地址,都可以很清楚的显示出来。我们为了展示match操作符筛选数组的功能,我们就拿这个ipconfig来做示例。

ipconfig执行后的结果大致应该是这样的:

PS C:\Users\Hong> (ipconfig)

Windows IP 配置

无线局域网适配器 本地连接* 13:

  媒体状态 . . . . . . . . . . . . : 媒体已断开
  连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 Wi-Fi:

  连接特定的 DNS 后缀 . . . . . . . :
  本地链接 IPv6 地址. . . . . . . . : fe80::a438:a0ec:e477:94c6%12
  IPv4 地址 . . . . . . . . . . . . : 192.168.1.102
  子网掩码 . . . . . . . . . . . . : 255.255.255.0
  默认网关. . . . . . . . . . . . . : 192.168.1.1

……(此处省略了其它网卡)

我们想要看本机配置的ip地址,那么只需要看以IPv4开头的行即可。那么我们就可以简单的以”IPv4“来作为匹配的关键字。所以,PowerShell命令就可以写作:
(ipconfig) -match 'IPv4'

这里为什么要把ipconfig用小括号括起来呢?因为我们知道ipconfig本身也有一些参数,为了不让系统误以为-match也是我们指定给ipconfig的参数,我们就给ipconfig加了一对小括号。小括号优先执行,呵呵,就是告诉系统,ipconfig是独立的整体。

在示例中,ipconfig执行后的结果是一个字符串数组。数组的每一个元素就是输出的每一行,也就是说有多少行输出,就有多少个数组元素。match参数对数组的操作,就是从数组元素中找到匹配的元素,把匹配到的元素输出出来。

2.match 提取内容

使用正则表达式,除了可以确定字符串是否匹配某一个正则表达式规则之外,另一个很重要的应用就是从字符串中提取出指定的内容。什么意思呢,举个例子,一个字符串中有出现连续的三个数字,我们想很方便的把这三个数字提取出来,那么就可以用正则表达式。

PS C:\Users\Hong> $str="abc123abc"
PS C:\Users\Hong> $pattern="(\d{3})"
PS C:\Users\Hong> $str -match $pattern
True
PS C:\Users\Hong> $matches

Name              Value
----              -----
1               123
0               123

在上面的示例中,我们指定了一个字符串$str="abc123abc",这个字符串中包含了123这个连续三个数字。我们又定义了一个$pattern变量,这是一个正则表达式。我们直接运行match时,输出为true,表示$str字符串中有连续的三个数字。
当我们再运行$matches时,输出了123,这就是匹配到的值。$matches这个变量不是我们自定义的,它是一个系统变量。我们在在运行match操作符时,这个系统变量自动获取了值。

再来说一下为什么$matches有两个值呢,我们把上面的例子修改一下。大家看看区别。

PS C:\Users\Hong> $str="abc123abc"
PS C:\Users\Hong> $pattern="abc(\d{3})"
PS C:\Users\Hong> $str -match $pattern
True
PS C:\Users\Hong> $matches

Name              Value
----              -----
1               123
0               abc123

我们把$pattern变量的值作了修改,在前面加了一个abc。这个在$matches[0]的值就变成了abc123。这说明,$matches[0]表示的是与正则表达式相匹配的内容。而$matches[1]及之后的内容,则是对应着正则表达式的一个个小括号里面匹配到的内容。示例中我们只有一个小括号,那只有$matches[1]。试想一下,如果正则表达式有多小括号,则会有多个$matches元素值。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索powershell
match命令
powershell match、tracert命令使用详解、linux命令使用详解、sudo命令使用详解、powershell 命令,以便于您获取更多的相关知识。

时间: 2024-09-13 09:40:41

PowerShell中match命令使用详解_PowerShell的相关文章

PowerShell中的加法运算详解_PowerShell

大家已经PowerShell中的运算符有了一定感性的认识.我们首先来学习"+"运算符.PowerShell定义了"+"运算符处理数值类型.字符串类型.数组类型和哈希表类型的具体行为.在进行数值计算时,"+"和平时的数值计算规则基本一样.不过需要注意,由于计算机内部表示不同数值类型时,使用的存储空间不同,因此这些类型都只能表示一个范围内的数据.在进行数值运算的过程中,如果计算结果超过了参与计算数值类型的值域时,PowerShell将会自动进行类型转

Linux中tail命令用法详解_Linux

tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文件写到标准输出.很多人喜欢使用tail –f 来监控日志文件. 一.Linux tail命令格式 Linux tail命令 格式如下所示 tail [OPTION]... [FILE]... Linux tail命令 参数如下所示 -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c

MySQL数据库中Show命令用法详解

MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. b. show databases; -- 显示mysql中所有数据库的名称. c. show columns from table_name from database_name; 或show columns from da

linux中dd命令用法详解

使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果你想要在线看 manual, 可以试试: dd --help 或是 info dd 如果你想要看看这个版本如何: dd --version 输入或输出 dd if=[STDIN] of=[STDOUT] 强迫输入或输出的Size为多少Bytes bs: dd -ibs=[BYTE] -obs=[SIZE] 强迫一次只做多少个 Bytes cbs

Linux中tar命令使用详解

tar 用来将多个文件或目录打包成一个大文件 1.将/tmp 打包并使用bzip2压缩 [root@localhost ~]# tar -cjvf ./tmp.tar.bz2 /tmp tar: Removing leading `/' from member names /tmp/ /tmp/man.config1.gz /tmp/man.config /tmp/.ICE-unix/ /tmp/man.config9.gz /tmp/man.config.bz2 -c 建立打包文件 -j 使用

Linux中gzip命令使用详解

gzip 一个在Linux下比较常用的的压缩指令,可以将一个文件压缩成一个以 .gz 结尾的压缩文件 准备工作 [root@localhost etc]# cp /etc/man.config /tmp [root@localhost etc]# cd /tmp [root@localhost tmp]# ll total 12 -rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt -rw-r--r--. 1 root root 4940

linux中which命令使用详解

  我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. find 实际搜寻硬盘查询文件名称. which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令. 1.命令格式: which 可执行文件名称 2.命令功能: w

linux中mv命令使用详解

  mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目录 目标文件或目录 2.命令功能: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数

linux中rmdir命令使用详解

  今天学习一下linux中命令: rmdir命令.rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 1.命令格式: rmdir [选项]... 目录... 2.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限. 3.命令参数: - p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除.如果