web-dev-qa-db-ja.com

Notepad ++拡張検索モードでの一致する数字

Notepad ++のマニュアルは、拡張検索モードで使用される数値の特殊文字についてはかなりあいまいです。次のように表示されます。\ d ###-10進数値(000〜255)ですが、文字通り「\ d ###」と入力しても何にも一致しません。

私がやろうとしているのは交換することです

if VarA == 12
  VarB = 1

if VarA == 12
  Var12=1
  VarB=1
4
ketchup

私はこの質問に対する答えを探していました。 NP ++ wikiを調べたところ、\dが私たちが望んでいるものと一致していないと思います。

\ d
0〜9の範囲の3桁で構成されるバイトの10進表現。

通常の数字とは一致せず、バイトコードと一致します。 \dの後に3桁の数字を続けると、対応するASCII文字と一致します。

つまり、\d032はスペース文字に一致し、\d033は感嘆符に一致します。 コードのリストについてはここを参照してください

残念ながら、これは、拡張オプションを使用して「任意の数字」に一致させることはできないことを意味します。正規表現を使用して、改行の問題を回避する方法を見つける必要があります。

2
DisgruntledGoat

私は正確に同じ問題を抱えていました!回避策を見つけました。まず、「拡張」検索モード(「暫定モード」と呼ばれるもの)を使用して、すべての改行文字を検索し、テキストにないランダムな文字に置き換えます。たとえば、すべての改行文字をチルダ( '〜')に置き換えました。次に、「正規表現」検索モードに切り替えます。これで、置換された文字で改行を参照して改行を検索できます。検索と置換によるテキストの操作が完了したら、ランダムな文字を改行に戻します。それでおしまい!

2
Mavaddat Javid
_if VarA == 12  
    VarB = 1

if VarA == 16  
    VarB = 0
_

正規表現での検索/置換の使用

何を見つける:if VarA == ([0-9]+)
次のように置き換えます:_if VarA == \1 \n\t Var\1=1_

「すべて置換」を実行します

結果:

_if VarA == 12  
     Var12=1  
    VarB = 1

if VarA == 16  
     Var16=1  
    VarB = 0 
_

これはあなたが探していたものですか?

1
J.F. Huesman

明確にしようとしています:私はあなたのコードを理解しているので、あなたがやろうとしていることは以下を検索することです:

varA ==の場合

数値を保存してから、

varA == Var = 1の場合。

問題は検索ではなく、値を保存しようとしていることです。検索/置換機能がそのようなことをできるかどうかはわかりません。

0
Blackbeagle