PowerShell正则表达式(二) 同时搜索不同的词语 1


有时搜索的词语比较含糊不清,因为这些词语可能有多种写法。你可以使用限定符“?”来标记这些词语作为可选字符。非常简单,把“?”放在可选字符后面即可。这样“?”前的字符就变成了可选字符,而不是非得出现。

"color" -match "colou?r"
True
"colour" -match "colou?r"
True

注意,此处的字符“?”并不代表任何字符,因为怕你可能会联想到简单模式匹配里面的“?”。正则表达式中的“?”,只是一个限定符,它代表的是指定字符或者子表达式出现的频率。具体到上面的例子,“u?”就确保了字符“u”在模式中不是必需的。常用的其它限定符,还有“*”(出现0次后者多次)和“+”(至少出现一次)。

如果你想标记更多的连续字符作为可选,可以把这些字符放置圆括号中建立子表达式。下面的子表达可以同时识别“Nov”和“November”:

"Nov" -match "\bNov(ember)?\b"
True
"November" -match "\bNov(ember)?\b"
True

如果你想使用多个可选的搜索词语,可以使用“或”操作符“|”:

"Bob and Ted" -match "Alice|Bob"
True

如果你想将搜索的词语和固定文本结合在一起,作为可选,仍然可以使用子表达式:

# 搜索 "and Bob":
"Peter and Bob" -match "and (Bob|Willy)"
True
# 没有搜索到 "and Bob":
"Bob and Peter" -match "and (Bob|Willy)"
False

原始英文链接:http://powershell.com/cs/blogs/ebookv2/archive/2012/03/20/chapter-13-text-and-regular-expressions.aspx

本文链接: https://www.pstips.net/regx-simultaneous-searches-for-different-terms.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 解开了 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “PowerShell正则表达式(二) 同时搜索不同的词语