【发布时间】:2020-10-21 12:14:24
【问题描述】:
我正在尝试从字符串中拆分句子。我在 Stack Overflow 上找到了这个:
$stringToExtract = "sentence a. sentence b. sentence c. last phrase"
$mySentences = $stringToExtract -split "(?<=\.)"
$mySentences
sentence a.
sentence b.
sentence c.
last phrase
但是……
$stringToExtract = "sentence a. sentence b. sentence c. last phrase"
$mySentences = $stringToExtract.split("(?<=\.)")
$mySentences
sentence a
sentence b
sentence c
last phrase
...不同的结果。
我想使用代码
$mySentences = $stringToExtract.split("(?<=\.)")。有人请告诉我这件事出了什么问题。
谢谢。
【问题讨论】:
-
-split是一个使用正则表达式的运算符。(?<=\.)是.字符的正则表达式正向回溯。它不消耗任何字符,这就是为什么.在拆分后仍然存在的原因。在不使用正则表达式的.split()方法中,只是将所有这些字符视为要分割的字符。因为.是你的字符串中唯一的一个,所以它是唯一一个分裂的。 -
-split和-match和-replace等其他运算符使用正则表达式,而.match.replace和.split不使用正则表达式。 -
另外,如果您对
.split()方法的结果感到满意,为了简洁起见,只需将其缩减为.split('.')。 -
感谢所有 cmets。非常感谢。
-
@AdminOfThings 如果它们真的是一个句子,我想在句子末尾保留点。顺便说一句,我正在从字符串中提取句子。
标签: string powershell split