PowerShell中使用正则表达式跨行匹配字符串的方法
本文介绍在PowerShell中当使用正则表达式时遇到多行字符串,如何进行跨行匹配的问题。
PowerShell中使用正则表达式来匹配搜索字符串是非常常用的一个操作。但如果遇到一个字符串有多行时,常规的正则表达式,无法正常工作。
不信请看:
PS C:\Users\spaybow> "1111`n2222" -match "^1.*2$"
False
PS C:\Users\spaybow> "1111`n2222" -match "1.*2"
False
上面两个返回值都是False,这很让人想不通。如果去掉“1111`n2222”中的“`n”则上面两句都将返回True了。
PS C:\Users\spaybow> "11112222" -match "1.*2"
True
PS C:\Users\spaybow> "11112222" -match "^1.*2$"
True
那么,怎么样处理这种需要跨行的正则表达式匹配呢?答案是使用(?S)选项,在正则表达式之前加上“(?s)”,可以让正则表达式跨行匹配。
PS C:\Users\spaybow> "1111`n2222" -match "(?s)^1.*2$"
True
PS C:\Users\spaybow> "1111`n2222" -match "(?s)1.*2"
True
关于PowerShell中正则表达式跨行匹配,本文就介绍这么多,希望对您有所帮助,谢谢!
相关推荐
-
PowerShell使用正则表达式查找字符串实例
本文介绍在PowerShell中使用-match运算符加正则表达式,进行字符串的搜索. match运算符,后面加上正则表达式,可以对字符串进行正则匹配查找.正则表达式功能强大,用于查找字符串时方便快捷.所以match运算符是我们经常要用到的一个知识.match查找的结果也是布尔值类型,即True或False,表示匹配成功或匹配失败. 下面举例说明: "123"是以"1"开头 复制代码 代码如下: PS C:\Users\spaybow> "123&q
-
PowerShell函数使用正则表达式验证输入参数实例
本文介绍在自定义PowerShell函数时,输入的参数是否合法可以通过正则表达式来进行约束.正则表达式来约束输入参数,将使用ValidatePattern指令. 之前我们通过ValidateSet来作为参数的智能提示,其实它也起到了对参数输入合规性的检查.因为ValidateSet是规定了一个输入参数的范围,不在这个范围内的参数,一是不能智能提示,另外,即便是输入了,它也无法通过函数的输入参数合规性检查,从而程序无法继续执行. 那么既然ValidateSet是以一个集合的形式来检查输入参数,那么
-
Shell正则表达式之grep、sed、awk实操笔记
最近一直在研究shell脚本这块,刚好闲下来整了下自己手头上比较好的资料中的一些范例,以下是我整理的鸟哥私房菜里面正则表达式里面比较基础的一些语法详解,适合新手查阅. 首先先复制一段范例: 复制代码 代码如下: # vi regular_express.txt ------------------------------- "Open Source" is a good mechanism to develop programs. apple is my favorite food.
-
Shell正则表达式验证IP地址
本机多个IP 复制代码 代码如下: ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}' 首先,先用这个来着 复制代码 代码如下: CheckIPAddress() { echo $1 > /tmp/tmpserverip echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" >
-
PowerShell中使用正则表达式匹配字符串实例
本文介绍PowerShell中使用match操作符,配合正则表达式从字符串提取指定的内容. 使用正则表达式,除了可以确定字符串是否匹配某一个正则表达式规则之外,另一个很重要的应用就是从字符串中提取出指定的内容.什么意思呢,举个例子,一个字符串中有出现连续的三个数字,我们想很方便的把这三个数字提取出来,那么就可以用正则表达式. 复制代码 代码如下: PS C:\Users\Hong> $str="abc123abc" PS C:\Users\Hong> $pattern=&q
-
PowerShell中正则表达式使用例子
本文介绍PowerShell中正则表达式的使用,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便. 正则表达式本身是怎么回事,本文不做讨论,反正PowerShell还是用的微软的那一套正则表达式规则,学VB.ASP.C#等语言时都应该学过.我们只谈谈在PowerShell中,怎么去用正则表达式. 先给出一个任务,使用PowerShell在d:\1.txt文件中,找到夹在数字串中的字母串.1.txt的内容如下: 复制代码 代码如下: 1 12 12aaa3 123b
-
Shell脚本中通过正则表达式匹配IP地址
在运维场景下,我们经常需要在服务器上用正则表达式来匹配IP地址. shell和其它编程语言一样,也可以使用正则分组捕获,不过不能使用 $1或\1这样的形式来捕获分组,可以通过数组${BASH_REMATCH}来获得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]} 下面以ip="121.0.2.2"为例,shell脚本代码如下(当然,你要做成更通用交互式的脚本,可以通过expect来实现): 复制代码 代码如下: #!/bin/bash ip="1
-
Shell正则表达式学习笔记
正规表示法(或称为常规表示法)是透过一些特殊字符的排列,用以搜寻/取代/删除一列或多列文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项『表示式』.正规表示法并不是一个工具程序, 而是一个字符串处理的标准依据,如果您想要以正规表示法的方式处理字符串,就得要使用支持正规表示法的工具程序才行, 这类的工具程序很多,例如 vi, sed, awk 等等. 一.正则表达式是什么? 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. 二.
-
Powershell学习笔记--使用正则表达式查找文件
支持所有PS版本 Get-ChildItem 不支持文件高级筛选.它只能使用简单的通配符,但不能使用正则表达式. 围绕这个问题,我们可以使用-match命令来筛选. 下面这个例子将获得所有windows目录下包含至少连续有两个数字的文件同时文件名长度不超过8个字符: Get-ChildItem -Path $env:windir -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.BaseName -match '\d{2}' -
-
PowerShell中使用正则表达式筛选数组实例
本文介绍PowerShell中使用match操作符,配合正则表达式从数组中筛选出想要的内容. 先看下面这个例子: 复制代码 代码如下: PS C:\Users\Hong> (ipconfig) -match 'IPv4' IPv4 地址 . . . . . . . . . . . . : 192.168.1.102 IPv4 地址 . . . . . . . . . . . . : 192.168.193.1 IPv4 地址 . . . . . . . . . . . . :
-
linux shell 正则表达式(BREs,EREs,PREs)差异比较
在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,在Perl中就内建了一个功能强大的正则表达式引擎.正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的.正则表达式通常缩写成"regex",单数有regexp.regex,复数有regexps.regexes.regexen.这些
随机推荐
- 详解IE6中的position:fixed问题与随滚动条滚动的效果
- Delphi实现获取进程列表及相关信息的实例
- vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
- JavaScript中闭包的详解
- javascript appendChild,innerHTML,join性能比较代码
- aspnet_regiis.exe命令使用方法
- Android编程将Activity背景设置为墙纸的简单实现方法
- PHP数据库表操作的封装类及用法实例详解
- 基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析
- 简单说说PHP优化那些事(经验分享)
- 微信小程序首页数据初始化失败的解决方法
- PHP实现的进度条效果详解
- Java正则表达式之split()方法实例详解
- PHP/HTML混写的四种方式总结
- PHP 动态生成静态HTML页面示例代码
- 自己实现的android树控件treeview
- 浅谈Android PathMeasure详解和应用
- 详解linux lcd驱动编写
- vue项目创建并引入饿了么elementUI组件的步骤
- 使用pyinstaller打包PyQt4程序遇到的问题及解决方法