Powershell ` |
您所在的位置:网站首页 › 换行符正则匹配 › Powershell ` |
我正在尝试使用正则表达式清理一些html文件(是的,我见过the post。我并不是一般地解析html),我想删除所有不包含标签的行。我的脚本如下: Remove-Item $args[1] $text = (Get-Content -Path $args[0] -Raw) $text = $text -replace "^\s*\r?\n" New-Item -Path $args[1] -ItemType File -Force -Value $text有一堆其他的东西我想要替换,但我主要是尝试修复 我可以验证内部正则表达式是否正常工作: VSCode (它使用JS正则表达式,而不是powershell的.NET正则表达式)使用提供的正则表达式正确地匹配(并替换)有问题的行。 我知道这个Powershell is Special,所以我将Get-Content的输出转换为一个嵌入了换行符的原始字符串。这并没有什么帮助。 我可以验证其他函数(即remove-item和new-item)是否正常工作,以及其他正则表达式是否正常工作,方法是将正则文本从"^\s*\r?\n"更改为"p", "abc",并查看p标记是否都变成了abc标记。 此外,正则表达式\s*\r?\n可以工作,因此并不是正则表达式找不到换行符。 正则表达式\A\s*\r?\n也不起作用,这意味着它与PowerShell如何找到字符串的开始/结束位置有关。 到底怎么回事? This is some text (the next line has a bunch of spaces)this is some more text 仅作为参考,当使用VSCode的JS regex引擎时,我的regex应该(并且确实)与上面示例的第二、第四和第五行匹配(我相信类似于PCRE) 最后,对正则表达式进行反编译: ^ from the start of the string \s* match any number of whitespaces \r? possibly followed by a carriage return \n then a newline |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |