正規表現の文字クラス[ ]で使用できるUnicode文字プロパティについて解説します。 統一規格なので正規表現の方言に左右されないのが特徴ですが、それ自体にも癖があります。Read less
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
PHPの調べ物をしていたのに気付いたらRubyの記事を見ていました。 Rubyを使ってタイ語の表示文字単位で文字列を区切る - Qiita これがなかなか面白くて、UnicodeやOnigmoについてちょろっと調べてみました。 元記事&コメント Rubyを使ってタイ語の表示文字単位で文字列を区切る - Qiita (文字コードの範囲などは、コメント途中で正しいものが提示されていたので、それを反映した形で掲載しています) タイ語の"พี่ชาย" (日本語で兄の意味)は表示上は4文字ですが、 最初の文字"พี่"が3つのUCS("e1e", "e35", "e48")から構成されており、 単純にsplit(//)をしただけでは6文字に分解されてしまいます。 コメント 前半 text = "พี่ชาย" # ["e1e", "e35", "e48", "e0a", "e32", "e22"]
タイ語の"พี่ชาย" (日本語で兄の意味)は表示上は4文字ですが、最初の文字"พี่"が3つのUCS("e1e", "e35", "e48")から構成されており、単純にsplit(//)をしただけでは6文字に分解されてしまいます。 いいやり方が思いつかなかったのでいったん全てばらしたものを再度走査して単独で成立しない文字を直前のものにくっつけて処理しました。 もっと効率的な書き方・Rubyらしい書き方があればご教授ください。 #!/usr/bin/env ruby # -*- coding: utf-8 -*- ca = "พี่ชาย".split(//) # ["e1e", "e35", "e48", "e0a", "e32", "e22"] ca_length = ca.length i = 0 while i < (ca_length - 1) case ca[i+1] whe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く