Regex Powershell:使用-split"\s+&引用;与“拆分”相反\s+&引用;

Regex Powershell:使用-split"\s+&引用;与“拆分”相反\s+&引用;,regex,parsing,powershell-4.0,Regex,Parsing,Powershell 4.0,前奏曲 我正在尝试执行一个操作,该操作要求我解析特定文件中的每个单词。最直接的方法是使用以下命令加载文本: $content = Get-Content -Path .\<filename> 它应该在每个(一个或多个)空白字符上创建一个新行(拆分)。不幸的是,我的结果如下所示: $content.split("\s+") The SpeechSynthe izer cla provide acce to the functionality of a peech ynthe

前奏曲

我正在尝试执行一个操作,该操作要求我解析特定文件中的每个单词。最直接的方法是使用以下命令加载文本:

$content = Get-Content -Path .\<filename>
它应该在每个(一个或多个)空白字符上创建一个新行(拆分)。不幸的是,我的结果如下所示:

$content.split("\s+")
The SpeechSynthe
izer cla

provide
acce

 to the functionality of a 
peech 
ynthe
 i
  engine that i
  in
talled on the ho
t computer. In
talled 
peech 
ynthe
 i
 engine
但是当我跑的时候

$content -split("\s+")
结果将正确显示:

$content -split("\s+")
The
SpeechSynthesizer
class
provides
access
to
the
functionality
of
a
speech
synthesis
我的问题 使用powershell V.4时,我无法理解执行该操作之间的区别

$content.split(“\s+”)

是。以及为什么他们会输出不同的结果

这个功能刚刚坏了吗

在这里是否还有其他一些我不知道的区别?

参见:

-split
运算符采用正则表达式,要在任意数量的空格上进行拆分,可以使用regexp
“\s+”

要拆分单个或多个字符,还可以使用
System.String
对象方法
split()

psc:\>'a,b;c、 d.拆分(“,”)-连接“|”

a | b;c|d

psc:\>'a,b;c、 d.拆分(“,;”)-连接“|”

a|b|c|d

因此,您只是用
$content.split(“\s+”)
传递了需要拆分的符号,而不是匹配空格的正则表达式


$content-split(“\s+”)
中,
\s+
是一个正则表达式模式,它匹配1个或多个空格符号。

所以您是说System.String方法不支持正则表达式,因此,“\s+”并不意味着“$content.split(“\s+”)上下文中的一个或多个空格正确吗?请注意,我不仅仅是说,但你的例子不言自明:所有的
s
字母都被拆分为两个字母。合成器等。您的
$content.split(“\s+”)
s
+
进行拆分(我猜
\
被视为错误的转义符号并被忽略)。试试你自己,既然你已经指出了这一点;我现在明白了,这正是它所反对的!我还对“$content.split(“”)”进行了测试,结果与预期完全一致。谢谢你,先生!我刚刚遇到,它说所有的字符串都是逐字的字符串文字,所以,
$content.split(“\s+”)
也应该被
\
分割。我刚刚测试过。确认您在斯特里比雪夫的上述声明。“\”字符也将分割该行。
$content -split("\s+")
The
SpeechSynthesizer
class
provides
access
to
the
functionality
of
a
speech
synthesis
$content -split("\s+")