在Powershell脚本中转换逻辑
有关上下文,请检查SO post 完整脚本:在Powershell脚本中转换逻辑,powershell,syntax,scripting,Powershell,Syntax,Scripting,有关上下文,请检查SO post 完整脚本: (get content file.txt-ReadCount 0)-替换“([^,]”“,“$1”| 设置内容newfile.txt 我特别想了解脚本这一部分的逻辑翻译: “([^,]”),“$1”| 有人能解释一下逻辑/语法,或者给我指出正确的方向吗?符号与字符串开头匹配。 很好的参考资料,很好地解释了一切。 powershell中Regex的介绍 当“^”符号出现在方括号[]中时,它将匹配任何字符,但不包括胡萝卜后面的字符([^,]>”)是一
(get content file.txt-ReadCount 0)-替换“([^,]”“,“$1”|
设置内容newfile.txt
我特别想了解脚本这一部分的逻辑翻译:
“([^,]”),“$1”|
有人能解释一下逻辑/语法,或者给我指出正确的方向吗?符号与字符串开头匹配。
很好的参考资料,很好地解释了一切。
powershell中Regex的介绍 当“^”符号出现在方括号[]中时,它将匹配任何字符,但不包括胡萝卜后面的字符([^,]>”)是一个正则表达式,它匹配除逗号和两个连续双引号之外的任何字符。括号将第一个字符和第一个双引号分组
“$1”
是对匹配中的组的反向引用,在替换中表示“仅用第一个组替换匹配”,例如,在字符串foo”栏中,序列o”“
将替换为justo”
,从而删除第二个双引号
|
是一个管道,用于将替换结果馈送到管道中的下一个cmdlet(Set Content newfile.txt
)
让我们把它分成两部分:正则表达式模式([^,]>”
和替换文本'$1'
。正则表达式模式中的()
创建了一个未命名的捕获组,该捕获组在替换文本中通过$1
引用,即它是第一个(仅在本例中)参数集。在此捕获组中匹配和捕获的是除逗号后跟双引号外的任何字符,双引号后跟捕获组外的另一个双引号。因此,它消除了两个连续双引号中的一个,除非第一个双引号前跟逗号。在我看来有点像正则表达式。Can请解释搜索模式中的运算符?我找不到^
符号的含义。好的。您是否能够翻译此处表达的逻辑:'([^,]>”,“$1”
?^
在[…]
字符类中时与字符串开头不匹配。[]
它匹配一个文字插入符号字符。@ERI你们都错了。在方括号内,插入符号反转字符类。[^,]
表示“除逗号以外的任何字符”。哦,是的,当它是类中的第一个字符时,它是否定的,但当它是后一个字符时,它不是否定的。神奇的意思是ftw!
'([^,]")"','$1'