私は現在、等号の周りにスペースを追加することによって、いくつかのPythonスクリプトの読みやすさを改善しようとしています。たとえば、現在、割り当ては次のようになります。
foo=4
bar[index]=4
そして私はそれを次のように変更したいと思います:
foo = 4
bar[index] = 4
私はすでに次の回答済みの質問Notepad ++を見つけました:「検索して正規表現に置き換える」は、「何を見つける」で次の正規表現を使用すると機能することを示唆しています。
(?<=[\w\]\)])=(?=\w)
Notepad ++は、対応するすべての等号を正しく検出しますが、何に置き換えようとしても、それらを置き換えることはありません。私は現在使用しています:
([\w\]\)])=(\w)
「何を見つける」と一緒に:
\1 = \2
仕事をする「replacewith」で。ただし、リンクされた質問で最初の正規表現(まあ、それに相当するもの)が正しいとマークされているため、最初の正規表現が機能しない理由がわかりません。Notepad ++ 6.6.1または6.6.8では機能しません。私は正規表現にあまり詳しくなく、Notepad ++で正規表現を使用するのはこれが初めてなので、助けていただければ幸いです。
編集:明確にするために:私はどの試みでも「replacewith」フィールドを空のままにしませんでしたが、常に何かで、=
または他の文字列で埋めました。最初の正規表現では、を使用しませんでした\1 = \2
。
しかし、私は問題を特定したと思います。これまでにすべての提案を試しましたが、どれもうまくいかなかったようです。しかし、「replace」ではなく「replace all」をクリックするとすぐに、Notepad ++は、最初の正規表現であっても、すべてを正しく置き換えました。これが意図した動作であるかどうかはわかりません。
その質問に対する受け入れられた回答には、検索式のみが含まれています。質問者は、置換文字列を空のままにしておく必要があることを指摘するコメントを残しました。一致するものはすべて削除します。
ここで実行しようとしているのは、=
演算子を完全に削除することではなく(スクリプトが壊滅的に壊れる可能性があるためです!)、単にスペースを埋めることです。
元の正規表現の機能:
(?<=[\w\]\)])=(?=\w)
次のような=
文字を見つけますか
\w
、]
又は)
、同様に(?<=[\w\]\)])
、と\w
のように、(?=\w)
。(?<=)
そして(?=)
部分である後読みと先読みアサーションそれぞれ、ない基を取り込みます。元の正規表現は何もキャプチャしないため、に置き換えると\1 = \2
期待どおりに機能しません。
作業中の正規表現:
([\w\]\)])=(\w)
トークンは2 parentheticalsキャプチャグループを作るどの取り除かれます。これにより、後方参照が機能し、最初のキャプチャ、記号、および2番目のキャプチャの間にスペースが適切に挿入されます。?<=
?=
\1 = \2
=
ちなみに(すでに実用的な解決策を見つけているので)、元の正規表現を機能させることはできますが、置換文字列は単に=
スペースで囲む必要があります。後読みアサーションと先読みアサーションによってテストされたものが実際に取得さ=
れることはありません。一致する文字は記号自体だけなので、置き換えても消えることはありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加