私のPythonスクリプトの中には、関連ファイルglob.glob(parent_folder_path + glob_str)
を含むこの行を正しいgrepコマンドを使用してコンソールに印刷する必要がありますが、これまでは印刷方法がわかりません。
すべて - 行を検索するコードglob.glob
は次のとおりです。
grep --exclude-dir='.history' --exclude-dir='__pycache__' --exclude-dir='.wine' -Rinw /home/andylu/Desktop/Python/Scripts/ -e 'glob.glob'
しかし、これはまだ私が達成したい正確さではありません。正規表現文字列として使用すると、'glob.glob(p*'
検索結果には1行だけ表示されます。結果が私に与えられるというのがglob.glob()
理解できませんね。(p*
()
次に私はそれを試して'glob.glob(p.*'
実際にうまくいき、すべての結果を見せましたglob.glob(parent_folder_path + glob_str)
。
試行錯誤を経て近くで見つけましたが、grep構文をよりよく理解したいと思います。最後の正規表現文字列は次のように有効ですか?このチートシート、.
ランダムな文字とランダムな*
繰り返し数を示しますか?
答え1
あなたの推測はかなり近いです。正規表現では、シーケンスとは、p*.
「0個以上の文字p
の後にランダムな文字の1つが続くもの」を意味します。
*
- 0個以上の先行トークン.
- 正確に1文字
正規表現では、より一般的な「グローバルワイルドカード」とは、.*
「すべての種類の1つ以上の文字」を意味します。
$
式にタグ(「ドメインの終わり」を意味)がないため、推測は有効です。
この場合、次のような表現が必要になることがあります/glob\.glob(p.*/
。
glob\.glob(p
- リテラル文字列glob.glob(p
の後に.*
- すべての種類の文字の1つ以上
より詳細に説明するには、たとえば、すべての呼び出しをペアでより広く一致させるには、glob.glob()
次のようにします/glob\.glob\([a-z_+ ]+\)/
。
glob\.glob\(
- リテラル文字列glob.glob(
[a-z_+ ]+
- 以下の1つ以上:文字az、アンダースコア、a、+
またはスペース\)
- 文字通りの意味)