Blog

���ܸ������Unicode�֥��å��ȥ�����ץ�(����ɽ��)

By Hiroyuki OYAMA Mon Jan 26 09:28:17 2004

����������ɽ���Ǥ�Unicode�֥��å���Unicode������ץȤ���ꤷ�ơ������ä����ܸ������ʸ����˥ޥå������뤳�Ȥ��Ǥ���ΤǤ��������˺����Ǥ������γФ��񤭡�

2������WEB+DB Press������ɽ���ͥ����Ƥ��褦�䤯�����ޤ�����(��)�����٤��ʤäƤ����ʤ����Ǥ��������Perl�ǡֺ����եġ�������ɽ���פ���⤷��Java��java.util.regex�ѥå�������PHP��preg�ϴؿ���ereg�ϴؿ���񤭤ޤ��ơ������̤�����.NET������ɽ���Υͥ���񤤤�ĺ���ޤ�����PHP�ʳ��Ϥ������Unicode�б���������ɽ�����󥸥�ʤΤǡ�
\p{Prop}
�Ȥ��ä�������Unicode�ˤ�����ʸ��������(�ץ��ѥƥ�)�������̤ν��η�(������ץ�)��ʸ�������ɾ���ϰ�(�֥��å�)����ꤹ�뤳�Ȥ��Ǥ��ޤ���Unicode�ץ��ѥƥ��δ�ñ����򤤤��Ĥ��󤲤��

\p{L}ɽ����ǽ��ʸ��
\p{M}¾��ʸ�����Ȥ߹�碌�ƻ��Ѥ���ʸ��
\p{Z}���ڤ�ʸ��
\p{S}����
\p{N}����
\p{P}������
\p{C}L,M,Z,S,N,P�ʳ��Τ��٤Ƥ�ʸ��
\p{Ll}��ʸ��
\p{Lu}��ʸ��
\p{Lo}�إ֥饤������ܸ�ʤɤ���ʸ���Ⱦ�ʸ��������ʤ�ʸ����
\p{Sc}�̲ߵ���

�Ȥ���Unicode������ץȤξ�����ܸ������Ǥ���Τ�

\p{Katakana}��������
\p{Hiragana}�Ҥ餬��
\p{Han}����
\p{Latin}�ѿ���
\p{Common}���ڡ�����������ʤ�

�ʤɡ�������Unicode������ץȤޤǥ��ݡ��Ȥ��Ƥ�������ɽ�����󥸥��Perl�Τ��餤���Ǹ��Unicode�֥��å������ܸ������Ǥ���Τ�

\p{InHiragana}�Ҥ餬��
\p{InKatakana}��������
\p{InHalfwidthAndFullwidthForms}Ⱦ�ѥ�������
\p{InCJKUnifiedIdeographs}����

�Ȥ��ä����������ʤߤ�java.util.regex��Perl��Unicode�֥��å�����Ƭ��In��Ȥ�����.NET�ξ�����Ƭ��Is��Ȥ����Ȥ������ۤ�����ޤ���

Unicode������ץȤȥ֥��å��ΰ㤤���ӥߥ硼�˸����뤱�ɡ��֥��å��������ɥ֥��å��򥴥�äȻ��ꤷ����Τ��Ф��ơ�������ץȤ��������˴ط�����ʸ���μ����ľ�ܻ��ꤹ���ΤʤΤǥ֥��å���������Ū���äƴ����Ǹ�����ɤ��ʤȡ����ʤߤ�Unicode��Ϣ�Υɥ�����Ȥˤ���Unicode�ץ��ѥƥ��ȥ�����ץȤ����ܸ��ʸ�Ϥ�ɽ�����Ȥ����
m/(?:(?:\p{Hiragana}|\p{Katakana}|\p{Han}|\p{Latin}|\p{Common})
  (?:\p{Inherited}|\p{Me}|\p{Mn})?)+/x;
����ʴ����ˤʤ뤽���ʡ��º�ή�̤��Ƥ���ʸ�ϤϤ�����¿�ͤʤΤǸ��¤Ȥ���̯��ЪΥ���Ƥ��ޤ���������������ʴ����ǤϤ���ޤ���

����Ǥʤˤ��򤷤����Ȥ����ȡ�ʸ���老�Ȥ˥����ʸ������ڤ�ʬ���褦�Ȥ�����ˤ�ñ���
import java.util.regex.*;

public class WordSplit {
    public static void main(String[] args) {
        String text = "�������ʺ������ʸ�Ϥ�input���ޤ�";
        Pattern p = Pattern.compile(
            "(\\p{InBasicLatin}+|" +
            " \\p{InHiragana}+|" +
            " \\p{InKatakana}+|" +
            " \\p{InCJKUnifiedIdeographs}+)", Pattern.COMMENTS);
        Matcher m = p.matcher(text);
    
        while (m.find()) {
            String chunk = m.group(1);
            System.out.println(chunk);
        }
    }
}
�Ȥ�
#!/usr/bin/perl

use Encode qw/encode decode/;
use strict;

my $text = decode('EUC-JP', '�������ʺ�����ΎˎގЎ�����ʸ�Ϥ�input���ޤ�');
my $pat = qr/(
    \p{InBasicLatin}+                 |
    \p{InHalfwidthAndFullwidthForms}+ |
    \p{Hiragana}+                     |
    \p{Katakana}+                     |
    \p{Han}+
)/x;

while ($text =~ /$pat/g) {
    print encode('EUC-JP', $1), "\n";
}
__END__
�Ȥ��񤯤����ǺѤ���ꤷ�ޤ������ʤߤˤ�����¹Ԥ����
����
����
��
�����
�ˎގЎ���
��
ʸ��
��
input
���ޤ�
�Ȥ������Ϥ����뤳�Ȥ��Ǥ��ޤ���

�ǡ�����Ϥ����򥵥ݡ��Ȥ��Ƥ��ʤ�PHP�ǡ�������Perl�Τ褦�˻��Ѥ��륨�󥳡��ǥ��󥰤ˤ��碌��ʸ���老�ȤΥ����ɥ֥��å�����ꤷ�Ƥ�����ɬ�פ�����ޤ���������������ʴ�����
<?php
$text = '�������ʺ������ʸ�Ϥ�input���ޤ�';  // EUC-JP
$pattern = '/( 
    [\x21-\x7E]+                 | # Latin-1
   #(?:\x8E[\xA6-\xDF])+         | # HankakuKatakana
    (?:\xA4[\xA1-\xF3])+         | # Hiragana
    (?:\xA5[\xA1-\xF6])+         | # Katakana
    (?:[\xB0-\xF4][\x00-\xFF])+    # Kanji
)/x';

if (preg_match_all($pattern, $text, $capture)) {
    echo join("\n", $capture[1]), "\n";
}
?>
PHP��Apache 2�Ǥ����Ѥ���Ƥ���PCRE�饤�֥��Τ�������java.util.regex����οͤΤ������ǡ����ʤ����ʬ�ǺǶ��Perl�饤��������ɽ�������ѤǤ��ޤ����ʤΤ���ꤵ���Web�������ˤ���褦�ʥ�������ͥ������Ū��ñ�����ѤǤ���ΤǤ⤷��¸���ʤ���������ä��㤤�ޤ��������󻲾Ȥ��Ƥߤ뤳�Ȥ򤪴��ᤷ�ޤ��Ǥ��������ޤ��Ǻܤ����ƤͰ���᡼���Ф��Ȥ�����
����ä�PHP��mb_ereg�ط���4.x��5.x�ǰ㤦������ȤäƤ��ơ�5.x�ϵ��֤Ǥ����ΤϤۤܳ���Ȥ���4.x�����Ԥ�mbregex�饤�֥���Ȥ�³����Τ���������äȵ��֤˰ܹԤ���Τ����褯�狼��ʤ������ǿʤ�ǻȤ����ˤʤ�ʤ�櫡�������ȤäȤ�PHP 5.x�������ˤʤ���̤˻�Ϻ���ʤ���Ǥ������Ϥơ����ȥɥ�����Ȥ�̵������������Ǥ����ɤ���Ǥ���PHP����οͤϡ�������ϻ���ڤΥѡ��ƥ��������ͤǤ����Ĥ�Rasmus Lerdorf�����ۤ��Ƥߤ��ꤷ�ޤ���������Ϥ����դ˴ؤ�äƤʤ��Ȼפ��Τ��֤��Ȥ��ơ��Ȥꤢ������ҤˤǤ�Ԥ������������᤹��

Comments

Post a comment

Name:


URL:


Comments:


Web¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤ÎApache¥â¥¸¥å¡¼¥ë¥×¥í¥°¥é¥ß¥ó¥°¥¬¥¤¥É

Apache��Hack����!
�⥸�塼��ץ�����ߥ󥰶������θ�!!
���: 2,919��(�ǹ�)
ISBN: 4-7741-1799-4

hiroyuki_oyama IM status

Apache Users

Apache Modules

CPAN


Home > Blog > ���ܸ������Unicode�֥��å��ȥ�����ץ�(����ɽ��)