OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

シフトJIS 2バイト字の範囲

  • 暇なときにでも
  • 質問No.150882
  • 閲覧数702
  • ありがとう数6
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 59% (194/328)

シフトJISの2バイト文字の範囲は

0x40~0x7e と 0x80~0xfc



0x40~0xfc

のどっちですか?
どちらの情報も見たことがあるんです。

シフトJISの文字をマッチングさせる場合、
ここでは見やすく、スペースを入れて

/ [\x81-\x9f] [\x40-\xfc] | [\xe0-\xfc] [\x40-\xfc] /

とした場合、例えば、亜a という文字列があったら
亜 の2バイト目(下位ニブルっていうのかな)が 9F で
b は16進で 62 だから、亜 の2バイト目と a が、
2バイトのシフトJISとしてこれにマッチしてしまうんです。
シフトJISで、こういう例外処理を書かずに、
全てに適用できるシフトJIS2バイトマッチのソースが
あれば教えてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル11

ベストアンサー率 31% (72/232)

「0x40~0x7e と 0x80~0xfc」だと思いますよ。
「亜a」に対してマッチングするのではなく、前から2バイトずつマッチングして、マッチしたら2バイト進み、マッチしなかったら1バイト進むというようにしないとダメでは?
0x7fの例外処理?を除くことはできないですよね。
お礼コメント
A__

お礼率 59% (194/328)

文字列先頭から見ていく
というのは思いつきませんでした。
ありがとうございます。
投稿日時 - 2001-10-17 19:41:03
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル12

ベストアンサー率 75% (398/526)

シフトJISの2バイト目のコードは、 0x40~0x7E 及び 0x80~0xFC です。 0x7Fは含みません。 で、2バイトシフトJISにマッチさせるなら、 /([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])/ と書けばOKなはずです。 […]という文字集合を使用しているのだから、2パターンに分ける必要はないですよ。 ...続きを読む
シフトJISの2バイト目のコードは、
0x40~0x7E 及び 0x80~0xFC
です。
0x7Fは含みません。

で、2バイトシフトJISにマッチさせるなら、
/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])/
と書けばOKなはずです。
[…]という文字集合を使用しているのだから、2パターンに分ける必要はないですよ。
お礼コメント
A__

お礼率 59% (194/328)

パターンをパイプを使わずに書く方法は勉強になりました。
ありがとうございます。
投稿日時 - 2001-10-17 19:40:50


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ