Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Powershell脚本中转换逻辑_Powershell_Syntax_Scripting - Fatal编程技术网

在Powershell脚本中转换逻辑

在Powershell脚本中转换逻辑,powershell,syntax,scripting,Powershell,Syntax,Scripting,有关上下文,请检查SO post 完整脚本: (get content file.txt-ReadCount 0)-替换“([^,]”“,“$1”| 设置内容newfile.txt 我特别想了解脚本这一部分的逻辑翻译: “([^,]”),“$1”| 有人能解释一下逻辑/语法,或者给我指出正确的方向吗?符号与字符串开头匹配。 很好的参考资料,很好地解释了一切。 powershell中Regex的介绍 当“^”符号出现在方括号[]中时,它将匹配任何字符,但不包括胡萝卜后面的字符([^,]>”)是一

有关上下文,请检查SO post

完整脚本:

(get content file.txt-ReadCount 0)-替换“([^,]”“,“$1”|
设置内容newfile.txt

我特别想了解脚本这一部分的逻辑翻译:

“([^,]”),“$1”|


有人能解释一下逻辑/语法,或者给我指出正确的方向吗?

符号与字符串开头匹配。
很好的参考资料,很好地解释了一切。
powershell中Regex的介绍

当“^”符号出现在方括号[]中时,它将匹配任何字符,但不包括胡萝卜后面的字符([^,]>”)是一个正则表达式,它匹配除逗号和两个连续双引号之外的任何字符。括号将第一个字符和第一个双引号分组

“$1”
是对匹配中的组的反向引用,在替换中表示“仅用第一个组替换匹配”,例如,在字符串
foo”栏中,序列
o”“
将替换为just
o”
,从而删除第二个双引号

|
是一个管道,用于将替换结果馈送到管道中的下一个cmdlet(
Set Content newfile.txt


让我们把它分成两部分:正则表达式模式
([^,]>”
和替换文本
'$1'
。正则表达式模式中的
()
创建了一个未命名的捕获组,该捕获组在替换文本中通过
$1
引用,即它是第一个(仅在本例中)参数集。在此捕获组中匹配和捕获的是除逗号后跟双引号外的任何字符,双引号后跟捕获组外的另一个双引号。因此,它消除了两个连续双引号中的一个,除非第一个双引号前跟逗号。

在我看来有点像正则表达式。Can请解释搜索模式中的运算符?我找不到
^
符号的含义。好的。您是否能够翻译此处表达的逻辑:
'([^,]>”,“$1”
^
[…]
字符类中时与字符串开头不匹配。
[]
它匹配一个文字插入符号字符。@ERI你们都错了。在方括号内,插入符号反转字符类。
[^,]
表示“除逗号以外的任何字符”。哦,是的,当它是类中的第一个字符时,它是否定的,但当它是后一个字符时,它不是否定的。神奇的意思是ftw!
'([^,]")"','$1'