HmJre.dllの[-]の正規表現についてNo.38133
かずらい さん 20/04/07 21:38
 
HmJre.dllで、全角文字のASCII内記号にマッチさせるのに、

1) × [!-/:-@[-`{-〜]
2) ○ [\uFF01-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFF5E]

1) の正規表現では正常マッチしないのでしょうか?

よろしくお願いいたします。

[ ]
RE:38133 HmJre.dllの[-]の正規表現についNo.38135
秀まるお2 さん 20/04/08 09:36
 
 HmJre.dllの場合、[...]の中の文字コード範囲指定は基本Shift-JISの文字コード
での範囲指定になります。

 具体的には、Shift-JISの文字コードにて、

!-/ 0x8149-0x815E
:-@ 0x8146-0x8197
[-` 0x816D-0x814D
{-〜 0x816F-0x8160

 の文字を対象にしたような意味になります。Shift-JISの文字コードは、Windowsの
文字コード表(charmap.exe)を起動して、

 文字セット(T): [________________]

 となってる所を「Windows: 日本語」にすると確認できると思います。

 \uXXXX を使った場合はユニコードで文字コード範囲が指定されたと解釈されるの
で、期待された動作になります。

 \uXXXXを使わずに表現するとしたら、例えば

 [,.:-!`^-_/|’”()[]{}+−=<>¥$%-@a-zA-Z]

 みたいな感じになってしまうかなぁと思います。

参考 - 記号類のShift-JIS文字コード:

, 8143
. 8144
: 8146
; 8147
? 8148
! 8149
` 814D
^ 814F
 ̄ 8150
_ 8151
/ 815E
| 8162
’ 8166
” 8168
( 8169
) 816A
[ 816D
] 816E
{ 816F
} 8170
+ 817B
− 817C
= 8181
< 8183
> 8184
¥ 818F
$ 8190
% 8193
# 8194
& 8195
* 8196
@ 8197

[ ]
RE:38135 HmJre.dllの[-]の正規表現についNo.38143
かずらい さん 20/04/08 18:40
 
秀まるお2 さんへ
  早々のご回答ありがとうございました。

HmJre.dllでの範囲指定は、Shift_JISと知り勉強になりました。
文字コード表(charmap.exe)もとっても便利です。
ありがとうございました。

[ ]