有什么方法可以将正则表达式拆分为多行,这样它就不会超出编辑器的末尾?
if (!($_ -match 'e_eld\.s|od_eld\.|oe_eld\.s|of_eld\.s|og_eld\.s|1c_eld\.s|2c_eld\.s|3c_eld\.s|4c_eld\.s|1c_eld\.s|o2_eld\.s|o3_eld\.s|o4_eld\.s|o5_eld\.s'))
{
# stuff
}
Run Code Online (Sandbox Code Playgroud)
当我尝试执行以下操作时,它不起作用。我也试过用`` 和所有其他技巧围绕它,但似乎没有任何效果,我找不到其他任何关于此的信息(也许我的搜索技巧很差)。
if (!($_ -match 'e_eld\.s|
od_eld\.s|
oe_eld\.s|
of_eld\.s|
og_eld\.s|
1c_eld\.s|
2c_eld\.s|
3c_eld\.s|
4c_eld\.s|
1c_eld\.s|
o2_eld\.s|
o3_eld\.s|
o4_eld\.s|
o5_eld\.s'))
{
# stuff
}
Run Code Online (Sandbox Code Playgroud)
您可以通过其内联形式使用IgnorePatternWhitespace正则表达式选项:(?x)
if ($_ -notmatch '(?x)
e_eld\.s|
od_eld\.s|
oe_eld\.s|
of_eld\.s|
og_eld\.s|
1c_eld\.s|
2c_eld\.s|
3c_eld\.s|
4c_eld\.s|
1c_eld\.s|
o2_eld\.s|
o3_eld\.s|
o4_eld\.s|
o5_eld\.s')
{
# stuff
}
Run Code Online (Sandbox Code Playgroud)
另请注意,我已翻译!(... -match ...)成更简单的... -notmatch ...; 大多数PowerShell 运算符都使用-not*.
此选项的目的是通过以下方式提高正则表达式的可读性:
允许您使用空格进行人性化的格式化,而不会使空格成为要匹配的内容的一部分。您确实想要匹配的空格然后必须显式发出信号,例如 with \ , [ ], or \s。
启用(单行)注释,前缀为#; 然后,您必须逐字转义#字符。作为\#。
一个简单的例子:
# Yields $true
'foo1' -match '(?x)
fo+ # word part
\d? # optional trailing digit
$ # and nothing else
'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |