1. ホーム
  2. regex

[解決済み] メモ帳++で全ての文字列を各文字列に含まれる数字に置き換えるには?

2022-05-14 10:03:09

質問

私は次のパターンを持つすべての値を見つけようとしています。

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

で、scopesの中の値に置き換えます。

私はパターンを見つけるために、次の正規表現を使用しています。

.*"\d+"

置き換えを行うにはどうしたらよいですか?

どのように解決するのですか?

メモ帳++で、置換するために、ヒット Ctrl + H で置換メニューが表示されます。

次に、"正規表現" ボタンをチェックし、置換で一致するパターンの一部を使用したい場合、"キャプチャ グループ" を使用する必要があります(詳細は google ). 例えば、次の各行をマッチさせたいとします。

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

を使って .*"\d+" パターンを使っていて、番号だけを残しておきたい場合。この場合、マッチングパターンにキャプチャグループを使用し、括弧を使用します。 () のような、そのような .*"(\d+)" . というわけで、置き換えでは、単純に次のように書くことができます。 $1 ここで $1 は最初のキャプチャグループの値を参照し,マッチングに成功するたびにその番号を返します。例えば、2つのキャプチャグループがあった場合 (.*)="(\d+)" , $1 は文字列 value$2 は数字を返します。

ということで、使うことで

検索して .*"(\d+)"

置き換える。 $1

それはあなたを返します

4
403
200
201
116
15

上記のパターンにマッチする代替の、より良い方法がたくさんあることに注意してください。例えば、パターン value="([0-9]+)" の方がより具体的で、これらの行にのみマッチすることが保証されているからです。キャプチャグループを使用せずに置換することも可能ですが、これは少し高度なトピックなので、今は置いておきます :)