「 ( 」はエスケープが必要ですね。
about_Regular_Expressions - PowerShell | Microsoft Learn
次の文字が予約されています:
[().\^$|?*+{。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
PowerShellを使って、テキストファイル内の(を含む行を検索したいです。
①Select-String -Pattern '(' -Path C:\A\A.txt
②Select-String -Pattern 'X' -Path C:\A\A.txt
①は失敗し②は成功しました。また①を実行した際、
Select-String : 文字列 ( は有効な正規表現ではありません: 解析中 "(" - ) が足りません。
というエラーメッセージが出ました。
VBAにおけるChr関数に相当する機能で(を指定すればいいのではないか、と思うのですが、
どうすればいいのか分かりません。
質問作成者が受け入れた回答
「 ( 」はエスケープが必要ですね。
about_Regular_Expressions - PowerShell | Microsoft Learn
次の文字が予約されています:
[().\^$|?*+{。
質問作成者が受け入れた回答
この回答は翻訳されています。そのため、一部の表現や文法が不自然に感じられる場合があります。
こんにちは Y5Q5jfD8HI4WXgcQさん、Microsoft Q&A フォーラムへようこそ。
PowerShellを使用してテキストファイル内で文字通りの左括弧 『(』 を含む行を検索しようとしていると理解しています。
Select-String はデフォルトで -Pattern 値を正規表現として扱います。『(』 は正規表現の特殊文字であり(グループを形成するために右括弧 『)』 を必要とします)、これが解析エラーの原因となります。
朗報です — 文字通り検索する簡単な方法が2つあります:
Select-String -Path C:\A\A.txt -Pattern '\('Select-String -Path C:\A\A.txt -Pattern '(' -SimpleMatchこの回答が役に立った場合は、「回答を受け入れる」をクリックし、高評価をお願いします。この回答について追加の質問がある場合は、「コメント」をクリックしてください。
注:このスレッドに関連するメール通知を受け取りたい場合は、当社のドキュメントに記載の手順に従ってメール通知を有効にしてください。