web-dev-qa-db-ja.com

Notepad ++での文字列を各文字列に含まれる数字に置きかえる方法は?

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

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

スコープ内の値で置き換えます。

次の正規表現を使ってパターンを見つけます。

.*"\d+"

どうすれば交換できますか?

95
Anton Selin

メモ帳++で置き換えるには、ヒット Ctrl+H 置換メニューを開きます。

それからあなたが "正規表現"ボタンをチェックし、あなたがあなたのマッチングパターンの一部を使うためにあなたの置き換えに欲しいならば、あなたは "キャプチャグループ"を使わなければなりません(もっと詳しく google を読んでください)。たとえば、次の各行に一致させたいとしましょう。

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

.*"\d+"パターンを使用して、数だけを維持したいです。その場合、()のように.*"(\d+)"のように、マッチングパターンでキャプチャグループを使用できます。だから今あなたの交換であなたは単に$1を書くことができます、ここで$ 1は最初の捕獲グループの値を参照して、それぞれの成功したマッチの数を返します。たとえば(.*)="(\d+)"の2つのキャプチャグループがある場合、$1は文字列valueを返し、$2は数値を返します。

だから使用して:

見つけます:.*"(\d+)"

置き換えます:$1

それはあなたを返します

4
403
200
201
116
15

前述のパターンを一致させるには、他にも多くの優れた方法があります。例えば、パターンvalue="([0-9]+)"は、より具体的であり、これらの行にのみ一致することを確信するので、より良いでしょう。キャプチャグループを使用せずに置き換えを行うことも可能ですが、これはもう少し高度なトピックですので、ここでは取り上げません:)

174
psxls

psxlsは素晴らしい答えを出してくれましたが、私のNotepad ++のバージョンは少し違うので、$(ドル記号)のキャプチャは機能しませんでした。

私はNotepad ++ v.5.9.を持っています、そしてここにあなたがあなたの仕事を成し遂げることができる方法があります:

パターンを検索します。value =\"([0-9] *)\"そして次のように置き換えます。\ 1(あなたがそのキャプチャグループの周りでやりたいことは何でも)

例角かっこで囲む

[\ 1] - >はvalue = "[4]"になります。

13
dchayka

(.*")\d+(")を置き換えます

$1x$2とは

xは「スコープ内の値」です。

6
marsze

私は持っていますNotepad ++ v6.8.8

検索:[([[a-zA-Z])]

置換:[\ '\ 1 \']

生成されます:$ array [XYZ] => $ array ['XYZ']

0
Juan Tapiador