我正在尝试找到一种使用 Powershell 脚本执行以下操作的方法。
\n\n我所说的非 ASCII 字符是指非键盘字符,例如重音字符、其他语言的字符等。
\n\n样本数据
\n\n - \xe5\xbc\xa0\xe4\xbc\x9f\n - \xe0\xae\x95\xe0\xaf\x81\xe0\xae\xb4\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x88\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe\xe0\xae\xa9 \xe0\xae\xaa\xe0\xaf\x86\xe0\xae\xaf\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d\n - \xe6\x97\xa5\xe6\x9c\xac\xe4\xba\xba\xe3\x81\xae\xe6\xb0\x8f\xe5\x90\x8d\n - Full Name\n - L\xc3\xa9na R\xc3\xa9mi\nRun Code Online (Sandbox Code Playgroud)\n\n输出数据
\n\n - \xe5\xbc\xa0\xe4\xbc\x9f\n - \xe0\xae\x95\xe0\xaf\x81\xe0\xae\xb4\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x88\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe\xe0\xae\xa9 \xe0\xae\xaa\xe0\xaf\x86\xe0\xae\xaf\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d\n - \xe6\x97\xa5\xe6\x9c\xac\xe4\xba\xba\xe3\x81\xae\xe6\xb0\x8f\xe5\x90\x8d\n - L\xc3\xa9na R\xc3\xa9mi\nRun Code Online (Sandbox Code Playgroud)\n\n我在其他线程中发现了正则表达式来删除非 ASCII 字符,但我似乎无法使其工作。
\n\n请帮忙!
\n\n** 编辑 **\n感谢大家的帮助!我已经成功地用下面的脚本做了我想做的事情。
\n\n$nonASCII = "[^\\x00-\\x7F]"\nforeach ($_ in [System.IO.File]::ReadLines($source)){\n if ($_ -cmatch $nonASCII){\n write-output $_ | out-File $output -append \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n