我正在尝试使用Powershell合并.rtf文件的HUNDREDS。
以下是格式: 一堆CSS东西跟着我想要的部分......
{\rtf1\ansi {\fonttbl{\f0 Arial;}}{\colortbl\red255\green255\blue255;}{\stylesheet
}\paperw11685\paperh1560\margl600\margr600\margt600\margb600\pard\plain\f0\fs28\cf0
\ql\li75\ri75\fi0\b Instructions: }
在这种情况下,我希望保留“说明:”
{\rtf1\ansi {\fonttbl{\f0 Arial;}}{\colortbl\red255\green255\blue255;}{\stylesheet
}\paperw10530\paperh1920\margl600\margr600\margt600\margb600\pard\plain\f0\fs28\cf0
\ql\li75\ri75\fi0\b You will be presented with fifty (50) questions which are ran
domly selected from a pool of hundreds of questions. }
在这种情况下,我希望保留“您将收到五十(50)个问题 从数百个问题中挑选出来。“
Powershell脚本是这样的:
$files = (dir *.rtf)
$outfile = "AllQuestions.rtf"
$files | %{
$_.Name | Add-Content $outfile
$MyVar = Get-Content $_.Name
$MyVar=$MyVar -replace ".*b\s","" | Add-Content $outfile
}
我的意图是用nothin(“”)替换所有字符串UP TO“\ b”。 我用/.b \ s /(fwd斜面作为分隔符,。 =“所有零次或多次”,b \ s =字母b和空格)我部分成功;它剥离一部分
{\rtf1........cf0
\ql\li75\ri75\fi0\b Instructions: }
到
{\rtf1........cf0
Instructions: }
这让我觉得cf0之后有一个换行符。我试图去掉所有的换行
-replace "\n*",""
没有改变字符串。
但是我想把所有前一个字符串(从{\ rtf1 ....到最终文本之前)转储到&留下那个结束文本.....在这一点上,我将把尾随“}”转储到后续的替换
答案 0 :(得分:1)
你可以使用正则表达式背后的外观 添加了捕获组(。*) 和非捕获组(?:}),以便它恰好匹配到}
(?<=\\b )(.*)(?: })$
答案 1 :(得分:0)
尝试使用此正则表达式($指向一行的结尾)以获取“说明:”或“将向您显示五十(50)个问题,这些问题是从数百个问题池中选出的。”部分:
\\b(.*)}$
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用多行正则表达式:
$text = (@'
{\rtf1\ansi {\fonttbl{\f0 Arial;}}{\colortbl\red255\green255\blue255;}{\stylesheet
}\paperw10530\paperh1920\margl600\margr600\margt600\margb600\pard\plain\f0\fs28\cf0
\ql\li75\ri75\fi0\b You will be presented with fifty (50) questions which are randomly selected from a pool of hundreds of questions. }
'@)
$text -replace '(?ms).+\\b([^}]+)}.*','$1'
You will be presented with fifty (50) questions which are randomly selected from a pool of hundreds of questions.
将-Raw开关与Get-Content一起使用以将文件读取为多行文本:
$files = (dir *.rtf)
$outfile = "AllQuestions.rtf"
$files | %{
$_.Name | Add-Content $outfile
$MyVar = Get-Content $_.Name -Raw
$MyVar=$MyVar -replace '(?ms).+\\b([^}]+)}.*','$1' | Add-Content $outfile
}