PowerShell - txt 文件中特殊字符后的第一个单词小写
PowerShell - lowercase first word after special character in txt files
我有很多 .txt 文件,我需要在字符“%”之后将 string/word 的每个实例小写,但第一个单词之后的以下单词则不需要。我正在尝试在 PowerShell 中执行此操作。
我有这个:
%WORD WORD2 WORD3 %WORD4
我需要这个:
%word WORD2 WORD3 %word4
下面的代码使文件中的所有内容都变成小写,我需要它只在字符“%”之后的第一个单词的所有实例中这样做。
$path=".\*.txt"
Get-ChildItem $path -Recurse | foreach{
(Get-Content $_.FullName).ToLower() | Out-File $_.FullName
}
对不起,安藤,我忘了在评论中回答你的问题。
这是正则表达式的样子:
(?s)(?<=%)(\w+).*(?=;)
这里是第一个单词小写的代码:
$path=".\*.txt"
$callback = { param($match) $match.Groups[1].Value.ToLower() }
$rex = [regex]'(?s)(?<=%)(\w+).*(?=;)'
Get-ChildItem $path -Recurse | ForEach-Object {
$rex.Replace((Get-Content $_ -raw), $callback) | Out-File $_.FullName
}
注:
如果您不需要为 between %
和 ;
之间的每个单词都这样做,那么正则表达式将是:
(?<=%)(\w+)
我有很多 .txt 文件,我需要在字符“%”之后将 string/word 的每个实例小写,但第一个单词之后的以下单词则不需要。我正在尝试在 PowerShell 中执行此操作。
我有这个:
%WORD WORD2 WORD3 %WORD4
我需要这个:
%word WORD2 WORD3 %word4
下面的代码使文件中的所有内容都变成小写,我需要它只在字符“%”之后的第一个单词的所有实例中这样做。
$path=".\*.txt"
Get-ChildItem $path -Recurse | foreach{
(Get-Content $_.FullName).ToLower() | Out-File $_.FullName
}
对不起,安藤,我忘了在评论中回答你的问题。
这是正则表达式的样子:
(?s)(?<=%)(\w+).*(?=;)
这里是第一个单词小写的代码:
$path=".\*.txt"
$callback = { param($match) $match.Groups[1].Value.ToLower() }
$rex = [regex]'(?s)(?<=%)(\w+).*(?=;)'
Get-ChildItem $path -Recurse | ForEach-Object {
$rex.Replace((Get-Content $_ -raw), $callback) | Out-File $_.FullName
}
注:
如果您不需要为 between %
和 ;
之间的每个单词都这样做,那么正则表达式将是:
(?<=%)(\w+)