電子書籍の厳選無料作品が豊富!

お世話になります。

「\(1)\(2)\(3)\(4)\(5)」と言う文字があります。
置換して
「\(1)\(2)\Y\(3)\(4)\(5)」
にしたいのですが、
検索:「\\(.+)\\(.+)\\(.+)」
置換:「\\\1\\\2\\Y\\\3」
とすると
「\(1)\(2)\(3)\(4)\Y\(5)」
となって、(2)の後ろに入ってくれません。

どのようにすれば(2)の後ろ(2個目のエンマークの後ろ)に
置換することができるのでしょうか?

何卒よろしくお願い致します。

A 回答 (1件)

秀丸に限らず、正規表現のワイルドカード(「.*」あるいは「.+」)では、始めの物が一番長くマッチするように動くことが多いです。


「.」がどんな文字にもマッチすることによる仕様です。

つまりkgyqk433さんの指示では、正規表現最初の「\\(.+)」の部分に「\(1)\(2)\(3)」がマッチしているため、その様な結果になってしまいます。

「.+」の部分を「[^\\]+」として指定、つまり「円記号を含まない1文字以上の文字列」としてやれば、希望の動作になると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!