アプリ版:「スタンプのみでお礼する」機能のリリースについて

正規表現におけるバイト境界という単語の意味について教えてください。
http://e-words.jp/w/%E3%82%A2%E3%83%A9%E3%82%A4% …
上記のようなサイトを参考にしましたが、何を言っているのか理解できませんでした。

質問者からの補足コメント

  • ご回答有難うございました。

    >>・1文字8ビットではなく、1文字16ビット等を使う (UTF-16等)
    >>・8ビットを複数使って、その組合せを1文字と見做す(Shift_JIS,EUC-JP,UTF-8等)

    この二つは、具体的に何が違うのでしょうか。1バイトを複数使ってその組み合わせを1文字とみなすのは、16ビットを使って1文字を表すのとは違うのでしょうか。

    >>後者
    というのは、>>コンピュータにとっては「1文字」/人間が見た感じでは「文字の一部」
    の>>人間が見た感じでは「文字の一部」で合っておりますか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/07/19 12:17

A 回答 (1件)

直接は関係ありません。


どんな文脈で出てきたのでしょうか?


----
ご存知かもしれませんが
コンピュータでは、文字は数値として扱います。
このとき、1バイト(8ビット)で1文字分、というのがよく使われています。
https://ja.wikipedia.org/wiki/ASCII

ところが、8ビットで表現できるのは256通りであり、英数だけならともかく、日本語やハングルやその他各国独自の文字を使おうとすると、全然足りません。

そこで、次のような方法が使われています。
・1文字8ビットではなく、1文字16ビット等を使う (UTF-16等)
・8ビットを複数使って、その組合せを1文字と見做す(Shift_JIS,EUC-JP,UTF-8等)


このとき、正規表現処理ルーチンが、この「多バイト文字」を正しく「1文字」として扱ってくれればいいのですが、
場合によっては、「1バイトの文字が複数」として扱います。

例えば、任意の1文字を . で表す、という正規表現があったときに、多バイト文字に対応している場合は「あ」という「1文字」にマッチしますが、そうで無い場合は、「あを構成するバイト列の1バイト目」といった、コンピュータにとっては「1文字」/人間が見た感じでは「文字の一部」にマッチします。

後者の場合に、「多バイト文字」を「1文字」として扱うための、前の文字の最後のバイトと、次の文字の最初のバイトの境界のことを言っているのかもしれません。
この回答への補足あり
    • good
    • 0

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