【发布时间】:2015-01-28 03:31:35
【问题描述】:
我正在尝试从每行仅包含一个单词的文本文件中提取单词。但我只想匹配单词中没有“_”(下划线)或“-”(破折号)的单词:
文件可能如下所示:
我只想提取第 1 行和第 2 行而忽略第 3 行和第 4 行
(即,当正则表达式匹配每一行时的结果应该是:
someword
SomeOtherword
每行没有“
我正在处理一个接近 100000 行的文件。我不想遍历每一行,因为需要处理时间非常快。我正在使用的代码:
$rx = '[\w-]+'
获取内容 $filename |选择字符串-模式 $rx -AllMatches |选择 -ExpandProperty 匹配 |选择 -ExpandProperty 值 |输出文件 $outputfile
【问题讨论】:
-
我需要通过正则表达式完成此操作,因为我无法遍历我正在处理的文件的内容接近 100000 行并且需要快速处理。 $rx = "^[a-zA-Z]+$" 获取内容 $ofile |选择字符串-模式 $rx -AllMatches |选择 -ExpandProperty 匹配 | select -ExpandProperty Value
"^[a-zA-Z]+$" 不匹配.. -
“我不想遍历每一行”是什么意思?您还打算如何检查每行是否有破折号或下划线?我使用我的答案在 4 秒内处理了一个 100k 行(~6MB)的文件。这还不够快吗?
标签: regex powershell