有没有办法将正则表达式拆分成多行,这样它就不会超出编辑器的结尾?
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
}
当我试着做下面的事情时,它不起作用。我也试过用``和所有其他的技巧来包围它,但似乎没有任何效果,我也找不到关于它的其他任何东西(也许我的搜索技巧很差)。
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
}
2条答案
按热度按时间uplii1fm1#
您可以使用**
IgnorePatternWhitespace
正则表达式选项**,通过其内联形式(?x)
:还要注意,我已经将
!(... -match ...)
转换为更简单的... -notmatch ...
;大多数PowerShell operators具有与-not*
的否定形式。此选项的目的是通过以下方式提升正则表达式的 * 可读性 *:
\
、[ ]
或\s
。#
**;然后你必须逐字转义#
字符。如\#
。一个简单的例子:
fd3cxomn2#
实现您所寻求的最简单的方法之一是使用多行字符串,并从字符串中删除回车符和新行字符。
最终结果将是相同的长字符串,但它将允许您垂直打破它,这样您就可以避免水平滚动。
参考资料
About Special Characters(
r
n)About Quoting Rules(多行字符串)