【发布时间】:2020-01-03 18:50:50
【问题描述】:
以下代码以某种方式执行我想要的操作,除了某些包含\ 的行和另一个问题。我想先澄清一下关于包含\的字符串的错误选择的不便。
$FC=(gc E3.txt)
$L=$FC.length
$SERI=foreach($k in 0..($L-1)) {$FC[$k]}
$list='E4.txt' # initially, no content
foreach($x in $SERI){sls -path E0.txt -pattern $x -CaseSensitive |ac $list}
$SCH=(gc $list).Replace('E0.txt:','')
clc $list
ac $list $SCH
下面是这3个文件的内容。
E3 (input 2) E0 (input 1) E4 (output)
_ahg _ab \> croitre\\ 2:_cnur \> plein\\
_cnur _cnur \> plein\\ 4:_cnv \> pratique\\
_cnv _cho \> cartouche\\ 7:_cob \> plaque\\
_co\m u _cnv \> pratique\\ 9:_coe \> étang (\!\!: stn: taief)\\
_co\upp m _co\m u \> lequel\\
_cob _co\upp m \> des morceaux\\
_coe _cob \> plaque\\
_drj \> complet\\
_coe \> étang (\!\!: stn: taief)\\
_coi \> prairie\\
我希望选择诸如 _co\m u \> lequel\\ 之类的行,但它们会导致错误语句,如下所示当前行。
sls : La chaîne _co\m u n’est pas une expression régulière valide : analyse de "_co\m u " - Séquence d'échappement \m non reconnue.
Au caractère Ligne:7 : 20
+ ... ($x in $lt){sls -path E0.txt -pattern $x - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (:) [Select-String], ArgumentException
+ FullyQualifiedErrorId : InvalidRegex,Microsoft.PowerShell.Commands.SelectStringCommand
是否可以修改该代码以使其正常工作?
【问题讨论】:
-
$SERI = foreach ($k in 1..$($FC.Count -1)) { [regex]::Escape($FC[$k]) } -
@JosefZ 似乎工作正常,谢谢;你应该把这个评论变成一个答案,也许有几个解释,这样你就可以得到你的观点。
标签: regex powershell windows-10 escaping select-string