[ 新規に投稿する ]

特定の対応する括弧を除外したいNo.41755
ANACOSTIA さん 25/03/04 10:50 [ コメントを投稿する ]
   対応する括弧を強調表示や移動の機能がありますが、この対応する括弧から、"["と"]"に挟まれた括弧と直前に"\"がある括弧を除外できないでしょうか?
 つまり、[(]、[)]、\(、\)を無視した上で、対応する括弧を強調表示や移動ができないでしょうか?
[ ]
RE:41755 特定の対応する括弧を除外したいNo.41757
秀丸担当 さん 25/03/04 12:49 [ コメントを投稿する ]
  おそらく正規表現の場合のことだと思いますが、正規表現の文字列内の除外や、特定の条件での除外をすることは難しいです。
文字定数として認識されている場合は、文字定数そのものは除外され、文字定数の外にある括弧であれば可能です。
例えば"\("が文字定数の色付けになっているとして、("\(")といったような外側の括弧は可能です。
"(\()"といった文字列内の括弧はできないです。
[ ]
RE:41757 特定の対応する括弧を除外したいNo.41760
ANACOSTIA さん 25/03/04 18:31 [ コメントを投稿する ]
   hilightファイルの編集にあたり、表記がどんどん複雑になり、何か良い方法が無いか悩んでいたところでした。
 最外側の“[”〜“]”や“\(”〜“終了文字列”、“\)”〜“終了文字列”の外側でのみ有効というだけでも大分助かります。
 入れ子の内側で、改めて同様の動作が将来実現するのかなぁと、期待しております。
[ ]
RE:41760 特定の対応する括弧を除外したいNo.41764
igus さん 25/03/06 22:09 [ コメントを投稿する ]
 
ひとつ思いついたのですが"[(]"、"[)]"、@"\("、@"\)"を普段は使わない絵文字とかに一時的に変換し退避させ、編集後に復元するというのはどうでしょう。

//括弧の変換と復元.mac
setmenudelay 700;
mousemenu
"&H 変換",   // 1
"&F 復元";   // 2
#r=result;
if(#r==1){
  replaceallfast "[(]","⏩";
  replaceallfast "[)]","⏪";
  replaceallfast @"\(", "⏫";
  replaceallfast @"\)", "⏬";
}else if(#r==2){
  replaceallfast "⏩","[(]";
  replaceallfast "⏪","[)]";
  replaceallfast "⏫",@"\(";
  replaceallfast "⏬",@"\)";
}
endmacro;
[ ]
RE:41764 特定の対応する括弧を除外したいNo.41765
igus さん 25/03/06 22:10 [ コメントを投稿する ]
  絵文字が化けましたが意図は察してください^^;
[ ]
RE:41765 特定の対応する括弧を除外したいNo.41766
秀まるお2 さん 25/03/07 08:35 [ コメントを投稿する ]
  思いつきですが、正規表現の処理をしているHmJre.dll側に、「\」を使った表現(エスケープシーケンスと呼ぶと思う)を何かヒットしない文字に変換してからマッチングさせて、マッチングが終わったら元に戻すような特殊な機能を追加する作戦があるといいかもしれません。

「エスケープシーケンスにヒットしないようにする」
「Avoid hitting escape sequences」

って意味で、

(?#avoidescseq)

みたいな指定をするとヒットしないようにするとか。

(?#avoidescseq)".*"

みたいにすると、"xxxx\"xxx" 全体にヒットするとか。
[ ]

[ 新規に投稿する ]