4

パターンを使用して単語をキャプチャし、置換操作で使用する場所に保存する必要があります。

たとえば、私はこのテキストを持っています

ab iiids
as sasas
md aisjaij
as asijasija

次のパターンを使用して、最初のスペースの前にすべてをキャプチャできます。

.*?(?=[" "])

「$」を使用して検索と置換で一致を表すことができるとしましょう。そのため、置換フィールドに次のように記述します。

INSERT INTO table (value) VALUES ("$")

解決策が見つかりませんでした。これは可能ですか?

4

1 に答える 1

7

はい、$&または$0置換文字列で一致全体を表します:

Find what: .*?(?=[ ])
Replace with: INSERT INTO table \(value\) VALUES \("$0"\)

文字クラス内の引用符は必要ないことに注意してください。そうしないと、一致も引用符で停止します。また、置換文字列で括弧をエスケープする必要があるという別の問題があることに注意してください (acdcjunior に気づいていただきありがとうございます)。これは、Notepad++ が、括弧で区切られた条件構造をサポートする boost を使用するためです。

あなたの入力を使用すると、これは次のようになります

INSERT INTO table (value) VALUES ("ab") iiids
INSERT INTO table (value) VALUES ("as") sasas
INSERT INTO table (value) VALUES ("md") aisjaij
INSERT INTO table (value) VALUES ("as") asijasija

より高度な使用例では、正規表現の一部を括弧で囲み、一致した部分文字列を 、 などで参照でき$1ます$2

ちなみに、より明示的なパターンは次のようになります。

^[^ ]*(?=[ ])

これにより、不要な場所で追加の一致が得られないようになります。

最後に、置換文字列で実行できるすべてのことのリファレンスを次に示します。

于 2013-06-26T21:41:29.470 に答える