タグ

ブックマーク / tama-san.com (2)

  • Unicodeで「漢字」の正規表現 – ものかの

    改訂:2017/07/22 Unicode 10.0に合わせて書き直し。正規表現を簡易にしようとしてやりすぎていたのを修正。 改訂:2023/03/21 U+30000以降を追加。InDesignの正規表現を追記。 正規表現で漢字の範囲指定をする場合、Unicodeではどうするかが悩ましいところです。 Unicodeの漢字の範囲として [一-龠] にしている例を見かけます。しかしこれは旧規格JIS X 0208の漢字が含まれる範囲をUnicodeの中から切り出しているだけです。互換漢字ブロックをまるごと取りこぼしているので、WindowsのシフトJIS(CP932)の拡張漢字に当たるものが含まれていません。現規格JIS X 0213の第3・第4水準漢字も考慮されていません。簡易な範囲指定だとしても、新常用漢字の「𠮟」が含まれておらず、今から見るとあまりに時代遅れです。 Unicodeのす

    Unicodeで「漢字」の正規表現 – ものかの
  • ものかの » 正規表現の略記法 \d と \s と \w

    正規表現の文字クラスの略記法 \d と \s と \w がいつのまにかアレレなことになっていたのでメモ。(1 Perl 5.8 以降で正規表現を使うには use utf8 が必須。 use utf8 では \d と \s と \w の文字クラスの内容が Unicode のカテゴリーに基づいている。 InDesign(Boost)も同様。 PCRE や Ruby は変わりなし。 (2 参考資料:perldoc の perlrecharclass 参考資料:Programming Perl の 5.4. Character Classes ちょっと詳しく見ていきます。 *以降、Perl = use utf8 の Perl ほとんど全ての人が [0-9] の10文字として使っていますが、Perl では \p{Nd} です。ただし、Perlのバージョンによって(対応しているUnicodeバージョン

    ものかの » 正規表現の略記法 \d と \s と \w
    kits
    kits 2011/09/30
    文字クラスの範囲について。/ 「use utf8 が必須」というのは誤解があると思う。全角の1(U+FF11)の場合: perl -le 'print("\x{ff11}"=~/\d/ ? "ok" : "ng")'
  • 1