我会尽力为您翻译。以下是需要翻译的内容:
以下是我一直在使用的 Powershell 命令和正则表达式。这个正则表达式似乎部分地在 Notepad++ 中起作用,可以查找和替换下划线,但不排除绝对链接。然而,在 Powershell 中,这个正则表达式根本不起作用,但我不确定是因为正则表达式错误还是我的 Powershell 知识有限。非常感谢任何关于 Powershell 命令和正则表达式的帮助。
我正在尝试查找一条PowerShell命令,以便在一个目录中搜索所有文件并仅在相对链接中替换下划线为连字符(链接不能以http开头)。
这里是一个例子:
<a href="/always_sunny/is_the_best/">
应该变成:
<a href="/always-sunny/is-the-best/">
然而,我希望正则表达式忽略以http开头的href值。因此,像这样的链接应该被忽略。
<a href="http://thundergunexpress/always_sunny/"
以下是我一直在使用的 Powershell 命令和正则表达式。这个正则表达式似乎部分地在 Notepad++ 中起作用,可以查找和替换下划线,但不排除绝对链接。然而,在 Powershell 中,这个正则表达式根本不起作用,但我不确定是因为正则表达式错误还是我的 Powershell 知识有限。非常感谢任何关于 Powershell 命令和正则表达式的帮助。
Get-ChildItem -Path k:\toolbox\powershell\ -recurse | ForEach {If (Get-Content $_.FullName | Select-String -Pattern '(\bhref="|(?!^)\G)[^"<_]*\K_'){(Get-Content $_ | ForEach {$_ -replace '(\bhref="|(?!^)\G)[^"<_]*\K_', '-'}) | Set-Content $_}}
(?<=<a(?:\s[^<>]*?)?\bhref="(?!http)[^"]*?)_(?=[^"]*")
will do。 - Wiktor Stribiżew