PowerShell正则表达式(三)大小写敏感


为了和PowerShell的习惯保持一致,操作符-match是大小写不敏感的,如果你想切换至大小写敏感的操作符可以使用“-cmatch”

# -match 大小写不敏感:
"hello" -match "heLLO"
True
# -cmatch 大小写敏感:
"hello" -cmatch "heLLO"
False

如果你只想在模式的部分片段中使用大小写敏感,仍旧可以使用-match,但是可以在正则表达式中指定部分模式是不是大小写敏感。跟在“(?i)”结构后的字符大小写不敏感,跟在(?-i)结构后面的字符大小写敏感。下面的例子会演示这个区别,模式中的字符字串 “st”因为被(?-i)标记为大小写敏感,所以可以匹配“TEst”,但不能匹配“TEST”。

但是如果你使用的是.NET framework的对象RegEx,它可以自动的在大小写敏感与不敏感之间切换。既可以使用IgnoreCase参数来显示的指定,也可以在模式中使用上面提到的结构来指定。

PS > [regex]::matches("test", "TEST", "IgnoreCase")

Groups   : {test}
Success  : True
Captures : {test}
Index    : 0
Length   : 4
Value    : test

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

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

关于 Mooser Lee

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

发表评论

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