[ 新規に投稿する ]

検索で16進数文字コードを指定する方法No.41662
おすぎ さん 25/02/10 08:53 [ コメントを投稿する ]
お世話になっています。

検索、エスケープシーケンスで、
「\xhh」(hに16進数で文字コードを指定する)の使い方について
教えてください。

「\x41」と書けば「A」にヒットするかと思いきや、
そうでもないようです。

よろしくお願いします。
[ ]
RE:41662 検索で16進数文字コードを指定する方法No.41663
でるもんたいいじま さん 25/02/10 09:30 [ コメントを投稿する ]
  でるもんた・いいじまです。

> 検索、エスケープシーケンスで、
.... 
> 「\x41」と書けば「A」にヒットするかと思いきや、
> そうでもないようです。

検索・置換ダイアログで「正規表現(R)」にチェックを入れてください。
この際、\x41 以外の部分も正規表現対応の書き方に書き直してください。
[ ]
RE:41663 検索で16進数文字コードを指定する方法No.41664
でるもんたいいじま さん 25/02/10 09:37 [ コメントを投稿する ]
  でるもんた・いいじまです

> > 「\x41」と書けば「A」にヒットするかと思いきや、
> > そうでもないようです。

> 検索・置換ダイアログで「正規表現(R)」にチェックを入れてください。

いま試してみましたが、\x41 や \x42 が反応しませんね。
[\u0041]、[\u{41}]、[\U00000041] も全滅です。

\x30 などはきちんと反応してくれます。
[ ]
RE:41663 検索で16進数文字コードを指定する方法No.41665
おすぎ さん 25/02/10 09:43 [ コメントを投稿する ]
  でるもんた・いいじま 様

ありがとうございます。

言い忘れましたが
正規表現にはチェックを入れて検索しました。
[ ]
RE:41665 検索で16進数文字コードを指定する方法No.41666
秀丸担当 さん 25/02/10 09:51 [ コメントを投稿する ]
  \x41のような16進数文字コードは、正規表現をONにする必要があります。
あともう一つ、半角アルファベットに相当する文字は、[大文字/小文字の区別]をONにする必要がありました。
[大文字/小文字の区別]がOFFの場合は、内部的に小文字に変換しているのですが、文字コード直接指定の場合は小文字変換が無いのでマッチしないようになっていました。
[ ]
RE:41666 検索で16進数文字コードを指定する方法No.41667
おすぎ さん 25/02/10 10:22 [ コメントを投稿する ]
  秀丸担当さま

[正規表現]ON、[大文字/小文字の区別]ON]で検索できました。
ありがとうございました。

しかしよく考えると
16進数×2桁だと、合計256個、ASCIIコードくらいしか検索できないです。

16進数×4桁ぐらいまで拡張する計画はあるでしょうか?
そんなニーズはないかもしれませんが。。。
[ ]
RE:41667 検索で16進数文字コードを指定する方法No.41668
秀丸担当 さん 25/02/10 11:45 [ コメントを投稿する ]
  16進数4桁の場合は、2つ並べると書くことができます。
この場合Shift-JISになり、例えば「あ」の場合は0x82A0ですが、これを正規表現で書くと
\x82\xA0
となります。

これはずっと以前からある書き方で、その後拡張されたものは、Unicodeの4桁〜8桁があります。
[\uXXXX]  Unicodeによる指定(4桁)   
[\u{XXXXX}]  Unicodeによる指定(任意の桁) 
[\UXXXXXXXX]  Unicodeによる指定(8桁) 
秀丸エディタヘルプの
目次− コマンド− 検索系コマンド−正規表現
のところの後半にUnicodeによる指定があります。

例えば「あ」はUnicodeでU+3042で、正規表現では
[\u3042]
となります。
[ ]
RE:41668 検索で16進数文字コードを指定する方法No.41669
おすぎ さん 25/02/10 12:39 [ コメントを投稿する ]
  秀丸担当さま

ご回答ありがとうございます。

目次− コマンド− 検索系コマンド−正規表現には、
「\xhh hに16進数で文字コードを指定する。hは2桁」と明記されています。

16進数4桁が 2つ並べると書けるのであれば、そのことをヘルプに加えていただ
けないでしょうか

1.16進数4桁は、2つ並べると書ける
2.その場合はShift-JISになり、例えば「あ」は0x82A0だが、これは正規表現で
書くと\x82\xA0となる。

誠にお手数ですが、よろしくお願いいたします。
[ ]
RE:41669 検索で16進数文字コードを指定する方法No.41670
秀丸担当 さん 25/02/10 16:19 [ コメントを投稿する ]
  \xhhを2つ並べるのは確かにヘルプを見るだけでわからないと思います。
大文字/小文字の区別についてもわからないです。
何かしら書いたほうがいいということでご意見参考にさせていただきます。
[ ]

[ 新規に投稿する ]