我发现PowerShell的正则表达式匹配,但是找不到Powershell等同于Python的正则表达式搜索。
以下是Python中的示例。
CustNo Audit History Inputter Authoriser
2 CHANGE BEFORE XYZ XYZ
2 CHANGE CURRENT TOM TOM
3 ADD NEW TOM TOM
3 CHANGE CURRENT MAX MAX
答案 0 :(得分:2)
与Python代码等效的PowerShell如下所示:
$inputstring = 'iqn.2007-11.com.storage:srmgrsmisvstvol2-ju7wjffssldf-df-sdf-ewr-v0dd04708bb13b686.000'
if ($inputstring -match '(\w*-){4}(\w*)') {
$matches[0]
}
-match
operator(默认情况下不区分大小写)用于根据正则表达式检查字符串。如果找到匹配项,将使用这些匹配项填充automatic variable $matches
。然后可以通过索引访问匹配项:0表示完全匹配,1表示第一个捕获的组,2表示第二个捕获的组,依此类推。
除了(隐含大小写)基本版本(-match
)之外,PowerShell比较运算符通常具有显式区分大小写和不区分大小写的版本(-cmatch
,-imatch
)。
$inputstring -match '(\w*-){4}(\w*)' # case-insensitive
$inputstring -imatch '(\w*-){4}(\w*)' # case-insensitive
$inputstring -cmatch '(\w*-){4}(\w*)' # case-sensitive
您还可以通过正则表达式中的miscellaneous constructs启用或禁用区分大小写,优先于运算符的区分大小写:
$inputstring -imatch '(?-i)(\w*-){4}(\w*)' # case-sensitive
$inputstring -cmatch '(?i)(\w*-){4}(\w*)' # case-insensitive