PowerShell中使用正则表达式跨行匹配字符串的方法_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中正则表达式跨行匹配,本文就介绍这么多,希望对您有所帮助,谢谢!

时间: 2024-08-01 05:31:14

PowerShell中使用正则表达式跨行匹配字符串的方法_PowerShell的相关文章

PowerShell中获取当前运行脚本路径的方法_PowerShell

在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本.以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢? 很简单,通过内置的$MyInvocation变量: 复制代码 代码如下: $x = $MyInvocation.MyCommand.Definition 此时$x的值是当前运行中的脚本的绝对路径,再用Split-Path取它的父路径就可以了: 复制代码 代码如下: $x = Split-Path -Paren

Powershell中获取所有磁盘盘符的方法_PowerShell

快速获取当前电脑所有磁盘: 复制代码 代码如下: #requires -Version 1 [Environment]::GetLogicalDrives() 结果如下: 复制代码 代码如下: PS> C:\ D:\ E:\ F:\ G:\

php中如何用preg_match_all匹配字符串

问题描述 php中如何用preg_match_all匹配字符串 <div class="Wrapper"> <div class="colImg"> <a href="http://store.shopping.yahoo.co.jp/matsunami/fcdm3.html"></a> </div> <div class="wrCol cf"> <

正则表达式 c#-c# 中关于正则表达式的匹配问题,跪求解答

问题描述 c# 中关于正则表达式的匹配问题,跪求解答 我有一个字符串全新通信设备,现货低价出售:中兴 9800 ASNV+PNVNA 3套MSAG5200 ALCH 60块 GADL 20块C220含机柜(2000*600*600)4套 现在想用正则表达式匹配出:9800,asnv+pnvna,msag5200 alch ,gadl,c220 这些数字加英文的这些关键字请问怎么写正则表达式来截取呢?

C#中图片、二进制与字符串的相互转换方法_C#教程

本文实例讲述了C#中图片.二进制与字符串的相互转换方法.分享给大家供大家参考,具体如下: protected void Button1_Click(object sender, EventArgs e) { //图片转二进制 byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png")); //二进制转换成字符串 string picStr = Convert.ToBase64String(imageB

js以分隔符分隔数组中的元素并转换为字符串的方法_javascript技巧

如下所示: <html> <body> <script type="text/javascript"> var arr = new Array(3) ; arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; document.write(arr.join() + "<br />");//默认情况下不提供分隔符,

PowerShell中使用正则表达式匹配字符串实例_PowerShell

本文介绍PowerShell中使用match操作符,配合正则表达式从字符串提取指定的内容. 使用正则表达式,除了可以确定字符串是否匹配某一个正则表达式规则之外,另一个很重要的应用就是从字符串中提取出指定的内容.什么意思呢,举个例子,一个字符串中有出现连续的三个数字,我们想很方便的把这三个数字提取出来,那么就可以用正则表达式. 复制代码 代码如下: PS C:\Users\Hong> $str="abc123abc" PS C:\Users\Hong> $pattern=&q

PowerShell中使用正则表达式筛选数组实例_PowerShell

本文介绍PowerShell中使用match操作符,配合正则表达式从数组中筛选出想要的内容. 先看下面这个例子: 复制代码 代码如下: PS C:\Users\Hong> (ipconfig) -match 'IPv4'    IPv4 地址 . . . . . . . . . . . . : 192.168.1.102    IPv4 地址 . . . . . . . . . . . . : 192.168.193.1    IPv4 地址 . . . . . . . . . . . . :

javascript中使用正则表达式删除前后空格的方法_正则表达式

去掉首位空格 复制代码 代码如下: str=str.replace(/^\s+|\s+$/g,''); js正则表达式删除字符串前后空格 String.prototype.trim=function(){ var reSpace=/^\s*(.*?)\s*$/; return this.replace(reSpace,"$1″); }; 让我们分析一下第二行的正则表达式 ^ 行开始 \s* 匹配字符前面的所有空格,贪婪模式重复 (.*?) 捕获组,勉强模式重复匹配任意字符,也就是我们最终需要(去