PostgreSQL�ˤϡ��ѥ�����ޥå���Ԥ��˺ݤ���3�Ĥΰۤʤä���ˡ������ޤ��� ����Ū��SQL��LIKE�黻�ҡ������꿷����SQL99��SIMILAR TO�黻�ҡ������POSIX�ͼ�������ɽ���Ǥ��� ���ˡ�SQL99�ͼ��⤷����POSIX�ͼ�����ɽ����Ȥäơ��ѥ�����ޥå��ؿ�substring����Ѥ��뤳�Ȥ��ǽ�Ǥ���
�ƥ��å�: �嵭�μ�ˡ�Ǥϸ����Ǥ��ʤ��褦�ʥѥ�����ޥå���ɬ�פʾ��ϡ�Perl�⤷����Tcl�ǥ桼������ؿ���������뤳�Ȥ�Ƥ���Ƥ���������
string LIKE pattern [ESCAPE escape-character] string NOT LIKE pattern [ESCAPE escape-character]
���줾���pattern�ϡ�ʸ����ν����������ޤ��� LIKE����pattern�ˤ�äƼ������ʸ����ν����string���ޤޤ�Ƥ���п����֤��ޤ��� (���������Ȥ��ꡢNOT LIKE����LIKE���������֤����ˤϵ����֤������εդ�ޤ�Ʊ���Ǥ��� Ʊ���μ��Ȥ���NOT (string LIKE pattern)�Ȥ�ɽ���Ǥ��ޤ���)
pattern���ѡ�����ȵ���⤷���ϥ��������������ޤ�Ǥ��ʤ����pattern�ϼ��Ȥ�ʸ���Τ�ΤǤ��� ���ξ��LIKE��������黻�ҤΤ褦�˿��ޤ��� pattern����ˤ��륢�����������(_)��Ǥ�դΰ�ʸ���ȤΥޥå����̣�����ѡ�����ȵ���(%)��0ʸ���ʾ��ʸ����ȤΥޥå����̣���ޤ���
�ʲ��ˤ����Ĥ�����ޤ���
'abc' LIKE 'abc' true 'abc' LIKE 'a%' true 'abc' LIKE '_b_' true 'abc' LIKE 'c' false
LIKE�ˤ��ѥ�����ޥå��Ͼ��ʸ�������Τ��Ф��ƹԤ��ޤ��� �Ǥ����顢ʸ������Τ����ʤ���֤ˤ����Ƥ�ѥ�����ޥå�������ˤϥѡ�����ȵ������Ƭ���������դ���ɬ�פ�����ޤ���
���������������ѡ�����ȵ���Ȥ�����ƥ���¾��ʸ���Υޥå��˻��Ѥ���ΤǤϤʤ������Τ�Τ˥ޥå������������ˤϡ�pattern����Τ��줾��Υ�������������ȥѡ�����ȵ�������˥���������ʸ�����դ��ʤ���Фʤ�ޤ��� �ǥե���ȤΥ���������ʸ���ϥХå�����å���Ǥ�����ESCAPE���¾��ʸ������ꤹ�뤳�Ȥ��Ǥ��ޤ��� ����������ʸ�����Τ�Τ�ޥå�������ˤϥ���������ʸ����դ��Ľޤ���
��ƥ��ʸ����ˤ����ƥХå�����å���ˤϻϤᤫ�����̤ʰ�̣�礤������Τǡ��Хå�����å����ޤ���ѥ���������Ҥ�������䤤��碌�����2�ĤΥХå�����å���Ҥ���ɬ�פ����뤳�Ȥ����դ��Ƥ��������� �������äơ��ºݤ˥Хå�����å��夽�Τ�Τ˥ޥå�����ѥ�����Ҥ���ˤϡ�ʸ����ǥХå�����å����4�ĵ��Ҥ���ɬ�פ�����ޤ��� ESCAPE���¾�Υ���������ʸ��������Ф��Τ褦�ʾ��������Ǥ����Хå�����å����LIKE���ˤȤ��ü��ʸ���ǤϤʤ��ʤ�ޤ��� (�ȤϤ��äƤ⡢��ƥ��ʸ����ѡ����ˤȤäƤϰ����Ȥ����ü�ʸ���ʤΤǡ���Ϥ�2�Ĥ�ɬ�פǤ���)
Ʊ����ESCAPE ''�ȵ��Ҥ��뤳�Ȥǥ���������ʸ�������ʤ����Ȥ��ǽ�Ǥ��� ����ˤ�ꡢ���¾奨������������Ư���ʤ��ʤ�ޤ��� �Ĥޤꡢ�ѥ�������Υ����������������ӥѡ�����ȵ�������̤ʰ�̣�������뤳�ȤϤǤ��ʤ��ʤ�ޤ���
���ߤΥ�������˽��ä���ʸ����ʸ������̤��ʤ��ޥå���Ԥ��ΤǤ����LIKE���ؤ���ILIKE������ɤ�Ȥ����Ȥ��Ǥ��ޤ��� �����ɸ��SQL�ǤϤʤ���PostgreSQL�γ�ĥ�Ǥ���
~~�黻�Ҥ�LIKE���������ǡ�~~*��ILIKE���б����ޤ��� �ޤ�NOT LIKE�����NOT ILIKE��ɽ��!~~�����!~~*�黻�Ҥ�����ޤ��� ����餹�٤Ƥα黻�Ҥ�PostgreSQL��ͭ�Τ�ΤǤ���
string SIMILAR TO pattern [ESCAPE escape-character] string NOT SIMILAR TO pattern [ESCAPE escape-character]
SIMILAR TO�黻�Ҥϡ����Υѥ�����Ϳ����줿ʸ����˥ޥå����뤫�ɤ����ˤ�ꡢ���⤷���ϵ����֤��ޤ��� ����ϡ�SQL99������ɽ���������Ѥ��ƥѥ�������᤹��Ȥ������ʳ��ϡ�LIKE�����ˤ褯���Ƥ��ޤ��� SQL99������ɽ���ϡ�LIKEɽ���Ȱ���Ū������ɽ����ɽ���Ȥ���碌���褦�ʤ�ΤˤʤäƤ��ޤ���
LIKE��Ʊ�͡�SIMILAR TO�黻�Ҥϡ����Υѥ�����ʸ�������Τ˥ޥå��������Τ߽�����Ԥʤ��ޤ��� ����ϡ��ѥ�����ʸ����ΰ���ʬ�Ǥ��äƤ�ޥå����롢����Ū������ɽ���ν����ȤϰۤʤäƤ��ޤ��� �ޤ���LIKE��Ʊ�͡�SIMILAR TO�Ǥϡ�%�����_���줾��Ǥ�դ�ʸ�����Ǥ�դ�ñ��ʸ�����̣����磻��ɥ�����ʸ���Ȥ��ƻ��Ѥ��ޤ�(�����ϡ�POSIX����ɽ���Ǥ�.*�����.���������ޤ�)��
LIKE���������줿�嵭�ε�ǽ�˲ä���SIMILAR TO�Ǥϡ��ʲ��Τ褦��POSIX����ɽ�����������줿�ѥ�����ޥå��ʸ���⥵�ݡ��Ȥ��Ƥ��ޤ���
|�ϡ�������(2�Ĥ������Τ��������줫)���̣���ޤ���
*�ϡ�ľ���Υ����ƥ��0��ʾ�η����֤����̣���ޤ���
+�ϡ�ľ���Υ����ƥ��1��ʾ�η����֤����̣���ޤ���
���()�ϡ������ƥ��1�Ĥ����������ƥ�˥��롼�ײ����뤳�Ȥ��Ǥ��ޤ���
���̼�[...]�ϡ�POSIX����ɽ����Ʊ�ͤ�ʸ�����饹����ꤷ�ޤ���
�Х����ȿ��(?�����{...}) �ϡ�POSIX�ˤϤ���ޤ����������Ǥϻ��ѤǤ��ʤ����Ȥ����դ��Ƥ��������� �ޤ����ɥå�(.)�ϥʸ���ǤϤ���ޤ���
LIKE��Ʊ�͡��Хå�����å���Ϥ��٤ƤΥʸ�����ü�ʰ�̣��̵���ˤ��ޤ��� �ޤ����ۤʤ륨��������ʸ����ESCAPE�ǻ��ꤹ�뤳�Ȥ���ǽ�Ǥ���
�ʲ��ˤ����Ĥ�����ޤ���
'abc' SIMILAR TO 'abc' true 'abc' SIMILAR TO 'a' false 'abc' SIMILAR TO '%(b|d)%' true 'abc' SIMILAR TO '(b|c)%' false
3�ĤΥѥ��������substring�ؿ���substring(string from pattern for escape-character)����Ѥ��ơ�SQL99����ɽ���ѥ�����˥ޥå�������ʬʸ�������Ф����Ȥ��Ǥ��ޤ��� SIMILAR TO��Ʊ�͡����ꤷ���ѥ����ǡ���ʸ�������Τ˥ޥå�����ɬ�פ�����ޤ��� �ޥå����ʤ���硢�ؿ��Ͻ�λ����NULL���֤��ޤ��� �ޥå����������֤����٤��ѥ�����ΰ���������ˡ�����������ʸ���θ����Ű�����(")��Ĥʤ�����Τ�2�ĥѥ�����˴ޤ��ɬ�פ�����ޤ��� �����ΰ��ǰϤ�줿�ѥ�����ΰ����˥ޥå�����ƥ����Ȥ��֤���ޤ���
�ʲ��ˤ����Ĥ�����ޤ���
substring('foobar' from '%#"o_b#"%' for '#') oob substring('foobar' from '#"o_b#"%' for '#') NULL
ɽ9-11�ˡ�POSIX����ɽ����Ȥä��ѥ�����ޥå��˻��Ѳ�ǽ�ʱ黻�Ҥ���ޤ���
ɽ 9-11. ����ɽ���ޥå��黻��
�黻�� | ���� | �� |
---|---|---|
~ | ����ɽ���˥ޥå�����ʸ����ʸ���ζ��̤��� | 'thomas' ~ '.*thomas.*' |
~* | ����ɽ���˥ޥå�����ʸ����ʸ���ζ��̤ʤ� | 'thomas' ~* '.*Thomas.*' |
!~ | ����ɽ���˥ޥå����ʤ�����ʸ����ʸ���ζ��̤��� | 'thomas' !~ '.*Thomas.*' |
!~* | ����ɽ���˥ޥå����ʤ�����ʸ����ʸ���ζ��̤ʤ� | 'thomas' !~* '.*vadim.*' |
POSIX����ɽ���ϡ��ѥ�����ޥå��Ȥ�����̣�礤�Ǥϡ�LIKE�����SIMILAR TO�黻�Ҥ��⤵��˶��ϤǤ��� egrep��sed�����뤤��awk�Τ褦��¿����Unix�ġ���Ϥ����Dz��⤷�Ƥ���Τ���������ѥ�����ޥå��������Ѥ��Ƥ��ޤ���
����ɽ���Ȥ�ʸ����ν���(��������)�δ�ά���줿����Ǥ���ʸ����Ϣ�ʤäƤ����ΤǤ��� ����ʸ��������ɽ���ǵ��Ҥ��줿������������ǤˤʤäƤ���С�����ʸ���������ɽ���˥ޥå����Ƥ���ȸƤФ�ޤ��� LIKE��Ʊ�͡�����ɽ��������ü�ʸ���Ȥ���Ƥ����ΰʳ����ѥ�����ʸ����ʸ����ȴ����˥ޥå�����ޤ��� �ȤϤ��äƤ�����ɽ����LIKE�ؿ������Ѥ����ΤȰۤʤ��ü�ʸ������Ѥ��ޤ��� LIKE�ؿ��Υѥ�����Ȱ�ä�����ɽ���ϡ�����Ū������ɽ����ʸ����κǽ�ޤ��ϺǸ夫��Ȱ��ֻ��ꤵ��Ƥ��ʤ��¤�ʸ������Τɤΰ��֤Ǥ�ޥå���Ԥ��ޤ���
�ʲ��ˤ����Ĥ�����ޤ���
'abc' ~ 'abc' true 'abc' ~ '^a' true 'abc' ~ '(b|d)' true 'abc' ~ '^(b|c)' false
2�ĤΥѥ��������substring�ؿ���substring(string from pattern)����Ѥ��ơ�POSIX����ɽ���ѥ�����˥ޥå�������ʬʸ�������Ф����Ȥ��Ǥ��ޤ��� ���δؿ��ϡ��ޥå������Τ��ʤ����ˤ�NULL���֤���������ϥѥ�����˥ޥå������ƥ����Ȥΰ������֤��ޤ��� ��������Ǥ�դγ�̤���ĥѥ�����ξ�硢�ǽ�γ������ʬ����ɽ��(����̤��ǽ�������)�˥ޥå�����ƥ����Ȥΰ������֤���ޤ��� �����㳰�������˥ѥ�������˳�̤���Ѥ������ΤǤ���С��������ɽ�����Τ��̤ǰϤळ�Ȥ��Ǥ��ޤ���
�ʲ��ˤ����Ĥ�����ޤ���
substring('foobar' from 'o.b') oob substring('foobar' from 'o(.)b') o
PostgreSQL������ɽ����Henry Spencer�ˤ��������줿�ѥå���������Ѥ��Ƽ�������ޤ����� �ʲ�������ɽ����������¿���ϡ����Υѥå������Υޥ˥奢����ܤ��饳�ԡ�����ޤ�����
POSIX 1003.2������ˤ��ȡ�����ɽ��(RE)�ˤ�2�Ĥη���������Ȥ���ޤ��� ��ĥRE�⤷����ERE(��ޤ��ˤ��ä�egrep����ɽ�������)������ӡ�����RE�⤷����BRE(��ޤ��ˤ��ä�ed����ɽ�������)�Ǥ��� PostgreSQL��ξ���η����ݡ��Ȥ�������ˡ�POSIXɸ��ˤϤʤ���Perl��Tcl�ʤɤΥץ�����ߥ�������ѤǤ��뤳�Ȥ�깭�����Ѥ����褦�ˤʤä��������Ĥ��γ�ĥ�⥵�ݡ��Ȥ��Ƥ��ޤ��� �ܽ�Ǥϡ���POSIX��ĥ����Ѥ���RE���ǿ�RE�⤷����ARE�ȸƤӤޤ��� ARE��ERE�����Τʾ�̥��åȤǤ�����BRE�Ȥ�ʣ���ε�ˡ�����ߴ�����������ޤ�(��������¿�������¤�����Ƥ��ޤ�)�� �ޤ���ARE��ERE�����ˤĤ����������������ơ�ARE�ˤΤ�Ŭ�Ѥ���뵡ǽ�����դ����BRE�Ȥΰ㤤�ˤĤ��Ƥ��������ޤ���
����: PostgreSQL�Ǽ��������������ɽ���η�����regex_flavor�¹Ի��ѥ���(��16.4��)����������뤳�Ȥ��Ǥ��ޤ��� �̾�������advanced�Ǥ��� ��������extended�����ơ�PostgreSQL����7.4������Υ����Ȥθ����ߴ��������ˤ��뤳�Ȥ�Ǥ��ޤ���
����ɽ����|�Ƕ��ڤ�줿���ҤȤĤޤ���ʣ�����֥����Ȥ����������ޤ��� �֥����ΰ�ĤȤǤ�ޥå�����Хޥå��������Ȥˤʤ�ޤ���
�֥����ϥ����İʾ���������ȥ��⤷����������Ϣ��Ǥ��� �ǽ�Τ�Τ˥ޥå��������μ��˥ޥå������Ȥ����դ��˥ޥå�����ޤ��� �ʤ������Υ֥����϶�ʸ���˥ޥå����ޤ���
�������ȥ�Ȥϡ�ñ�����������������դ���ǽ�����������ȥ��Τ��ȤǤ��� �����Ҥ��ʤ��ȡ����ȥ�˰��פ����Τ��ޥå��������Ȥˤʤ�ޤ��� �����Ҥ������硢���ȥ�Ȥΰ��פ����뤫�ǥޥå��������Ȥˤʤ�ޤ��� ���ȥ��ϡ�ɽ9-12�˼�������ΤΤ����줫��Ȥ뤳�Ȥ��Ǥ��ޤ��� ɽ9-13�������ǽ�ʽ����ҤȤ��ΰ�̣���ޤ���
�����϶�ʸ���ˡ�����ξ��˹礦���Τߤ˥ޥå����ޤ��� ���ȥब���ѤǤ������������Ѥ��뤳�Ȥ��Ǥ��ޤ��� �����������θ�˽����Ҥ��դ��뤳�ȤϤǤ��ޤ��� ñ��������ɽ9-14�˼����ޤ��� ���¾�Τ����Ĥ���������������ޤ���
ɽ 9-12. ����ɽ���Υ��ȥ�
���ȥ� | ���� |
---|---|
(re) | (������re ��Ǥ�դ�����ɽ���Ǥ���) re�˥ޥå������Τ��ޥå����ޤ����ޤ������Υޥå�������Ѥ�����դ����ޤ��� |
(?:re) | ���Ʊ���������������Υޥå�������Ѥ�����դ����ޤ��� ("�����ޤ�ʤ�"��̤ν���)(ARE�Τ�) |
. | Ǥ�դΰ�ʸ���˥ޥå����ޤ��� |
[chars] | �֥饱�åȼ��� chars�Τ����줫��Ĥ˥ޥå����ޤ��� (�ܺ٤���9.6.3.2�Ȥ��Ƥ���������) |
\k | (������k�ϱѿ����ʳ��Ǥ���) ���̤�ʸ���Ȥ��ƻ��ꤷ��ʸ���˥ޥå����ޤ��� �㤨�С�\\�ϥХå�����å���ʸ���Ǥ��� |
\c | ������c�ϱѿ����Ǥ��� (�����餯¾��ʸ�������³���ޤ���) �����������Ǥ��� ��9.6.3.3�Ȥ��Ƥ��������� (ARE�Τߡ�ERE��BRE�ǤϤ����c�˥ޥå����ޤ���) |
{ | ľ��˿����ʳ��������硢������{�˥ޥå����ޤ��� ľ��˿�����³����硢bound(���)�λϤޤ�Ǥ��� |
x | ������x��¾�˰�̣������ʤ���ʸ���Ǥ��� x�˥ޥå����ޤ��� |
RE��\��ü�Ȥ��뤳�ȤϤǤ��ޤ���
����: PostgreSQL��ʸ�����ƥ����ΥХå�����å���(\)���������̤ʰ�̣����äƤ��뤳�Ȥ�˺��ʤ��Ǥ��������� �Хå�����å����ޤ�ѥ������������ˤϡ�����ʸ��Ǥ�2�ĤΥХå�����å����ʤ���Фʤ�ޤ���
ɽ 9-13. ����ɽ��������
������ | �ޥå� |
---|---|
* | ���ȥ��0�İʾ���¤Ӥ˥ޥå� |
+ | ���ȥ��1�İʾ���¤Ӥ˥ޥå� |
? | ���ȥ��0�Ĥޤ���1�Ĥ��¤Ӥ˥ޥå� |
{m} | ���ȥ�����Τ�m�Ĥ��¤Ӥ˥ޥå� |
{m,} | ���ȥ��m�İʾ���¤Ӥ˥ޥå� |
{m,n} | ���ȥ��m�İʾ�n�ʲ����¤Ӥ˥ޥå��� m��n��ۤ��뤳�ȤϤǤ��ޤ��� |
*? | *����ĥ��ʤ��С������ |
+? | +����ĥ��ʤ��С������ |
?? | ?����ĥ��ʤ��С������ |
{m}? | {m}����ĥ��ʤ��С������ |
{m,}? | {m,}����ĥ��ʤ��С������ |
{m,n}? | {m,n}����ĥ��ʤ��С������ |
{...}����Ѥ���������Х�����ȸƤФ�ޤ��� �Х�������m��n�Ȥ������Ϥ����̵��10�������Ǥ��ꡢ0�ʾ�255�ʲ����ͤ�Ȥ뤳�Ȥ��Ǥ��ޤ���
��ĥ��ʤ�������(ARE�Τߤǻ��Ѳ�ǽ)�ϡ� �б������̾��(��ĥ���)��Τ�Ʊ����Τ˥ޥå����ޤ�������Ĺ�Υޥå��ǤϤʤ��Ǿ��Υޥå���Ȥ�ޤ��� �ܺ٤���9.6.3.5�Ȥ��Ƥ���������
����: �����Ҥ�ľ��˽����Ҥ�³���뤳�ȤϤǤ��ޤ��� �����Ҥ��鼰��������Ϥ�뤳�ȤϤǤ������ޤ���^��|��ľ����դ��뤳�Ȥ�Ǥ��ޤ���
ɽ 9-14. ����ɽ������
���� | ���� |
---|---|
^ | ʸ�������Ƭ�˥ޥå� |
$ | ʸ����������˥ޥå� |
(?=re) | ��Թ��긡���ϡ�re�˥ޥå�������ʬʸ����Ϥޤ�Ǥ�դξ��˥ޥå����ޤ��� |
(?!re) | ������긡���ϡ�re�˥ޥå����ʤ���ʬʸ����Ϥޤ�Ǥ�դξ��˥ޥå����ޤ��� |
��Ը�������ˤ���������(��9.6.3.3����)��ޤ�뤳�ȤϤǤ��ޤ��� �ޤ���������γ�̤Ϥ��٤Ƽ������ΤǤϤʤ��Ȥߤʤ���ޤ���
�֥饱�åȼ��Ȥϡ�[]���ʸ���Υꥹ�ȤǤ��� �̾盧��Ϥ��Υꥹ�����Ǥ�դΰ�ʸ���˥ޥå����ޤ���(���������ʹߤȤ��Ƥ���������) �ꥹ�Ȥ�^����Ϥޤ��硢���Υꥹ�ȤλĤ�ˤ�̵��Ǥ�դΰ�ʸ���˥ޥå����ޤ��� �ꥹ�����2ʸ����-�Ƕ��ڤ��Ƥ�����硢�����2��(��ޤ�)�δ֤ˤ���ʸ���ϰ����Τ�ɽ����ά���Ȥʤ�ޤ��� �㤨�С�ASCII�ˤ�����[0-9]�Ϥ��٤Ƥο����˥ޥå����ޤ��� �㤨��a-c-e�Ȥ��ä�����ü��ͭ����2�Ĥ��ϰϤ������Ǥ��� �ϰϤ��¤Ӥξȹ������˰�¸���Ƥ��ޤ��� �Ǥ��Τǡ��ܿ�ͽ��Υץ������ǤϤ���˰�¸���ƤϤʤ�ޤ���
���Υꥹ�Ȥ�]���Τ�Τ�ޤ��ˤϡ��������Ƭʸ��(�⤷�����^�θ��ʸ��)�ˤ��Ƥ��������� -���Τ�Τ�ޤ��ˤϡ��������Ƭ�⤷����������ʸ���Ȥ��뤫���ϰϤ�2���ܤν�ü�Ȥ��Ƥ��������� -���ϰϤ�1���ܤν�ü�ǻ��Ѥ���ˤϡ�[.��.]�Ǥ����Ϥߡ��ȹ�����(���)�ˤ��Ƥ��������� ������ʸ���ˤ��㳰�����ꡢ[(�������)������������(ARE�Τ�)��¾�Τ��٤Ƥ��ü�ʸ�����ȹ礻�ϥ֥饱�åȼ���Ǥ��ü�ʰ�̣������ޤ��� �äˡ�\��ERE��BRE��§�˽����������̤Ǥʤ��ʤ�ޤ��� ��������ARE�Ǥ�(���������פλϤޤ�Ȥ���)���̤ʰ�̣������ޤ���
�֥饱�åȼ���ˡ��ȹ�����(ʸ����ñ��ʸ���Ǥ��뤫�Τ褦�˾ȹ礹��ʣ��ʸ�����¤ӡ��⤷���Ϥ��줾��ξȹ��¤Ӥ�̾��)��[.��.]�δ֤ˤ���ȡ����ξȹ����Ǥ�ʸ�����¤Ӥ��̣���ޤ��� �����¤Ӥϥ֥饱�åȼ��Υꥹ�Ȥΰ����ǤǤ��� �������ơ����Ǥ�ȹ礹��ʣ��ʸ����ޤ�֥饱�åȼ���1ʸ���ʾ�˥ޥå����뤳�Ȥ��Ǥ��ޤ��� �㤨�С��ȹ��¤Ӥ�ch�ȹ����Ǥ�ޤ��硢����ɽ��[[.ch.]]*c��chchcc�Ȥ���ʸ���κǽ��5ʸ���˥ޥå����ޤ���
����: ���νꡢPostgreSQL��ʣ��ʸ���ȹ����Ǥ�����ޤ��� ���ξ���Ͼ���ο��β�ǽ��������������ΤǤ���
�֥饱�åȼ����[=��=]�δ֤˾ȹ����Ǥ�Ʊ�ͥ��饹�Ǥ��� ���٤Ƥξȹ����Ǥ�ʸ�����¤Ӥ����Ȥ�ޤ��Τ������Ǥ��뤳�Ȥ��ޤ��� (¾�������ʾȹ����Ǥ������硢[.��.]�ǰϤޤ줿���Τ褦�˰����ޤ���) �㤨�С�[[=o=]]��[[=^=]]�����[o^]�����٤�Ʊ�ո�Ǥ���С�o��^��Ʊ�ͥ��饹�Υ��ФǤ��� Ʊ�ͥ��饹���ϰϤν�ü�ˤϤʤ�ޤ���
�֥饱�åȼ���Ǥϡ�[:��:]�δ֤ˤ���ʸ�����饹��̾�Τϡ����Υ��饹��°���뤹�٤Ƥ�ʸ���Υꥹ�Ȥ��̣���ޤ��� ɸ��ʸ�����饹̾�ϡ�alnum��alpha��blank��cntrl��digit��graph��lower��print��punct��space��upper��xdigit�Ǥ��� ������ctype��������줿ʸ�����饹���̣���ޤ��� ����������̤Τ�Τ������ǽ��������ޤ��� ʸ�����饹���ϰϤν�ü�Ǥϻ��Ѥ��뤳�Ȥ��Ǥ��ޤ���
�֥饱�åȼ��ˤ�2�Ĥ��ü�ʾ�礬����ޤ��� [[:<:]]��[[:>:]]�Ȥ����֥饱�åȼ��ϡ���Ƭ�Ƚ�ü��ñ�줬���줾���ʸ���Ǥ��뤳�Ȥ˥ޥå���������Ǥ��� ñ��ϡ�ñ��ʸ����������դ��ʤ�ñ��ʸ�����¤ӤȤ����������ޤ��� ñ��ʸ���Ȥ�1�Ĥ�alnumʸ���Ǥ��� (ctype���������Ƥ��ޤ���) ����ϡ�POSIX 1003.2�Ȥθߴ����Ϥ���ޤ����������Ǥ��������Ƥ��ʤ����Ǥ��� �Ǥ��Τǡ�¾�����ƥ�ذܿ�ͽ��Υ��եȥ������Ǥλ��Ѥˤ����դ�ɬ�פǤ��� �̾��Ҥ����������פ������ɤ��Ȥ��ޤ��� (�����ɸ��ǤϤ���ޤ������Ϥ��䤹���ʤäƤ��ޤ���)
�����������Ȥϡ�\����Ϥޤ�ѿ��������θ��³���ü���¤ӤǤ��� ���������פˤϡ�ʸ������ȥꡢ���饹��ά�����������ס��������ȤȤ��ä��͡����Ѽ郎����ޤ��� \�θ�˱ѿ�����³������ͭ���ʥ��������פ������ʤ��¤Ӥ�ARE�Ǥ������Ǥ��� ERE�ˤϥ��������פϤ���ޤ��� �֥饱�åȼ��γ�¦�Ǥϡ�\�θ�˱ѿ�����³���¤Ӥ�ñ�����̤�ʸ���Ȥ��Ƥ���ʸ�����̣���ޤ��� �֥饱�åȼ�����¦�Ǥϡ�\�����̤�ʸ���Ǥ��� (����ʸ����ERE��ARE�֤���ߴ�����1�ĤǤ���)
ʸ������ȥꥨ���������������ʸ����RE������ؤ�ʸ���λ�����ά�����뤿���¸�ߤ��ޤ��� ������ɽ9-15�˼����ޤ���
���饹��ά�����������ϡ�����褯���Ѥ����ʸ�����饹�ξ�ά�������ޤ��� ������ɽ9-16�˼����ޤ���
�����������ϡ����ꤷ�����˹礦���˶�ʸ���˥ޥå���������������פȤ���ɽ������ΤǤ��� ������ɽ9-17�˼����ޤ���
��������(\n)�ϡ�ľ���˳�̤ǰϤޤ줿�����ˤ�äƥޥå����줿��n���ܤ�Ʊ��ʸ����˥ޥå����ޤ��� (ɽ9-18�Ȥ��Ƥ���������) �㤨�С�([bc])\1��bb�⤷����cc�˥ޥå����ޤ�����bc��cb�ˤϥޥå����ޤ��� RE�Ǥ��������Τϸ������Ȥ����ˤʤ���Фʤ�ޤ��� �����ϳ���̤ν��֤��ֹ��դ�����ޤ��� �����ޤʤ���̤�������������ޤ���
����: ���������פ���Ƭ��\��SQLʸ������Ȥ��ƥѥ���������Ϥ�����ˤ���Ťˤ��ʤ���Фʤ�ʤ����Ȥ�˺��ʤ��Ǥ���������
ɽ 9-15. ����ɽ��ʸ������ȥꥨ��������
���������� | ���� |
---|---|
\a | ����(�٥�)ʸ����C�����Ʊ�� |
\b | �Хå����ڡ�����C�����Ʊ�� |
\B | �Хå�����å����ɬ�פ���Ų�����餹�����\��Ʊ���� |
\cX | (������X��Ǥ�դ�ʸ���Ǥ���) ���β���5�ӥåȤ�X��Ʊ�졢����¾�ΥӥåȤ�0�Ȥʤ�ʸ�� |
\e | �ȹ��̾��ESC�Ȥʤ�ʸ��������˼��Ԥ����顢033�Ȥ���8�ʿ��ͤ����ʸ���� |
\f | ���ڡ�����C�����Ʊ�� |
\n | ���ԡ�C�����Ʊ�� |
\r | ������C�����Ʊ�� |
\t | ��ʿ���֡�C�����Ʊ�� |
\uwxyz | (������wxyz�����Τ�4���16�ʿ��Ǥ���) ���ѥޥ���ΥХ��Ƚ��ɽ������U+wxyz�Ȥ���Unicodeʸ�� |
\Ustuvwxyz | (������stuvwxyz�����Τ�8���16�ʿ��Ǥ���) ���餫�β���Τ���˳��ݤ��줿Unicode��ĥ��32�ӥå� |
\v | ��ľ���֡�C�����Ʊ�� |
\xhhh | (������hhh��Ǥ�դ�16�ʿ����¤ӤǤ���) ����ʸ����16�ʿ��ͤ�0xhhh�Ȥʤ�ʸ���� (���Ѥ����16�ʿ��η���˴ؤ�餺ñ���ʸ����) |
\0 | �����ͤ�0�Ȥʤ�ʸ�� |
\xy | (������xy�����Τ�2���8�ʿ��ǡ����������ǤϤ���ޤ���) �����ͤ�0xy�Ȥʤ�ʸ�� |
\xyz | (������xyz�����Τ�3���8�ʿ��ǡ����������ǤϤ���ޤ���) �����ͤ�0xyz�Ȥʤ�ʸ�� |
16�ʿ��η�Ȥ�0-9��a-f��A-F�Ǥ��� 8�ʿ��η�Ȥ�0-7�Ǥ���
����ʸ������ȥꥨ�������פϾ�����̤�ʸ���Ȳ�ᤵ��ޤ��� �㤨�С�\135��ASCII��]�Ȥʤꡢ\135�ϥ֥饱�åȼ��ν�ü�ˤϤʤ�ޤ���
ɽ 9-16. ����ɽ�����饹��ά����������
���������� | ���� |
---|---|
\d | [[:digit:]] |
\s | [[:space:]] |
\w | [[:alnum:]_] (note underscore is included) |
\D | [^[:digit:]] |
\S | [^[:space:]] |
\W | [^[:alnum:]_] (����������������ޤޤ�뤳�Ȥ�����) |
�֥饱�åȼ���Ǥϡ� \d��\s�������\w�Ϥ��γ�¦�����̤�����\D��\S�����\W�������Ǥ��� (�Ǥ����顢�㤨��[a-c\d]��[a-c[:digit:]]��Ʊ���ˤʤ�ޤ��� �ޤ���[a-c\D]��[a-c^[:digit:]]��Ʊ���ˤʤꡢ�����Ǥ���)
ɽ 9-17. ����ɽ������������
���������� | ���� |
---|---|
\A | ʸ�������Ƭ�ˤΤߥޥå����ޤ��� (^�Ȥΰ㤤�ˤĤ��Ƥ���9.6.3.5�Ȥ��Ƥ���������) |
\m | ñ�����Ƭ�ˤΤߥޥå����ޤ��� |
\M | ñ��������ˤΤߥޥå����ޤ��� |
\y | ñ�����Ƭ�⤷���������ˤΤߥޥå����ޤ��� |
\Y | ñ�����Ƭ�⤷���������ʳ��ξ��ˤΤߥޥå����ޤ��� |
\Z | ʸ����������ˤΤߥޥå����ޤ��� ($�Ȥΰ㤤�ˤĤ��Ƥ���9.6.3.5�Ȥ��Ƥ���������) |
ñ������Ҥ�[[:<:]]��[[:>:]]�ε���Ȥ�����������ޤ��� �֥饱�åȼ���Ǥ����������פ������Ǥ���
ɽ 9-18. ����ɽ����������
���������� | ���� |
---|---|
\m | (������m�����ο��Ǥ���) ������m���ܤؤθ������� |
\mnn | (������m�����ο��Ǥ��� nn�ǹ��˷����ꤷ�ޤ��� mnn10�ʿ��ͤϼ����߳�̤ο�����¿���ƤϤʤ�ޤ���) ������mnn���ܤؤθ������� |
����: 8�ʿ���ʸ������ȥꥨ�������פȸ������Ȥδ֤ˤ����Ū��ۣ����������ޤ��� ��ǥҥ�Ȥ��Ƽ������褦�ˤ����ȯ��Ū��ˡ�Dz�褵��ޤ��� ��Ƭ��0�Ͼ��8�ʿ����������פ��ޤ��� ���θ�˿�����³���ʤ�ñ����������Ͼ�˸������ȤȤ��Ʋ�ᤵ��ޤ��� ��������Ϥޤ�ʤ�ʣ���������¤Ӥϡ�Ŭ�ڤ������θ�ˤ����(�Ĥޤꡢ�����ֹ椬���������Ѥ��ϰ���ˤ����)�������ȤȤ��Ʋ�ᤵ��ޤ��� ����ʤ��С�8�ʿ��Ȥ��Ʋ�ᤵ��ޤ���
��Ҥμ繽ʸ��¾�ˡ��ü�ʷ����仨¿�ʹ�ʸŪ�ʵ�ǽ�����Ѳ�ǽ�Ǥ���
�̾���Ѥ����RE�μ����regex_flavor�Ƿ��ꤵ��ޤ��� ����������������ֻ�ˤ�äƾ���뤳�Ȥ��Ǥ��ޤ��� RE��***:����Ϥޤ����Τ�ΤǤ���С�RE�λĤ��ARE�Ȳ�ᤵ��ޤ��� RE��***=����Ϥޤ����Τ�ΤǤ���С�RE�λĤ�ϡ����٤Ƥ�ʸ�������̤�ʸ���Ȥߤʤ�����ƥ��ʸ����Ȳ�ᤵ��ޤ���
ARE�������ߥ��ץ��������Ϥ�뤳�Ȥ�Ǥ��ޤ��� (?xyz)�Ȥ����¤ӤǻĤ��RE�˱ƶ����륪�ץ�������ꤷ�ޤ��� (������xyz��1�İʾ�αѻ��Ǥ���) ���Υ��ץ����ϡ������˷��ꤵ�줿(RE�������ʸ����ʸ���ζ��̤�ޤ�)���ץ��������ޤ��� ���Ѳ�ǽ�ʥ��ץ����ʸ����ɽ9-19�˼����ޤ���
ɽ 9-19. ARE�����ߥ��ץ����ʸ��
���ץ���� | ���� |
---|---|
b | �Ĥ��RE��BRE |
c | ��ʸ����ʸ������̤���ޥå�(�黻�Ҽ�������ޤ���) |
e | �Ĥ��RE��ERE |
i | ��ʸ����ʸ������̤��ʤ��ޥå�(��9.6.3.5��)(�黻�Ҽ�������ޤ���) |
m | n�����Ū��Ʊ���� |
n | ���Ԥ���̤���ޥå�(��9.6.3.5��) |
p | ��ʬŪ�ʲ��Ԥ���̤���ޥå�(��9.6.3.5��) |
q | �Ĥ��RE�ϥ�ƥ��("�������դ����줿")ʸ�����٤����̤�ʸ�� |
s | ���Ԥ���̤��ʤ��ޥå�(�ǥե����) |
t | ������ι�ʸ(�ǥե���ȡ����) |
w | ��ʬŪ�ʲ��Զ��̤ε�("�磻������")�ޥå�(��9.6.3.5��) |
x | ��ĥ��ʸ(���) |
�����ߥ��ץ����Ϥ����¤Ӥν�ü)��ͭ���ˤʤ�ޤ��� ARE����Ƭ�ǤΤ����Ѳ�ǽ�Ǥ��ꡢ���θ�ϻ��Ѥ���ޤ���
���٤Ƥ�ʸ������̣����ġ��̾��(�������)RE��ʸ�˲ä���x�����ߥ��ץ�������ꤹ�뤳�Ȥ����ѤǤ�����ĥ��ʸ������ޤ��� ��ĥ��ʸ�Ǥϡ�RE��ζ���ʸ����̵�뤵�졢#�Ȥ��θ�β���(�⤷����RE�ν�ü)�δ֤Τ��٤Ƥ�ʸ����Ʊ�ͤǤ��� ����ˤ�ꡢ�����դ���ʣ����RE�Υ������դ�����ǽ�ˤʤ�ޤ��� ���ܵ�§���Ф���3�Ĥ��㳰������ޤ���
ľ����\���դ�������ʸ���⤷����#���ݻ�����ޤ���
�֥饱�åȼ���ζ���ʸ���⤷����#���ݻ�����ޤ���
ARE��(?:��BRE��\(�ʤɤ�ʣ��ʸ������ܥ�Ǥϡ�����ʸ���ȥ����Ȥ������Ǥ���
��ĥ��ʸ�ζ���ʸ���Ȥϡ������ֲ��ԡ�spaceʸ�����饹��°����ʸ���Ǥ���
�Ǹ�ˡ�ARE�Υ֥饱�åȼ��γ�¦�Ǥϡ�(?#ttt)�Ȥ����¤Ӥϥ����Ȥˤʤ�ޤ��� (������ttt��)��ޤޤʤ�Ǥ�դΥƥ����ȤǤ���) �����֤��ˤʤ�ޤ����������(?:�ʤɤ�ʣ��ʸ������ܥ��ʸ���֤Ǥϻ��ѤǤ��ޤ��� �������������Ȥϼ������������Ū�ʲù��ʤǤ��� ���Τ��ᡢ���λ��Ѥϴ���ޤ�������˳�ĥ��ʸ����Ѥ��Ƥ���������
����***=����Ҥ����ꤵ�졢�桼�������Ϥ�RE�ǤϤʤ���ƥ��Ȥ��ư������硢�����Υ��ʸ��ĥ�ϻ����Ǥ��ޤ�����
RE��ʸ��������1�İʾ����ʬʸ����ȥޥå�������ˤ����ơ�RE�Ϻǽ�˥ޥå����Ϥޤä���ʬʸ����ȥޥå����ޤ��� ���ΰ��֤���ޤ�1�İʾ����ʬʸ����ȥޥå������ݤϡ�����ɽ���Ϥ���ͥ�����ˤ�äơ���Ĺ�⤷���Ϻ�û��ʸ����Τɤ�������뤫����ꤷ�ޤ���
�ۤȤ�ɤΥ��ȥ�Ȥ��٤Ƥ�����ˤ�ͥ���̤Ϥ���ޤ��� ����դ����줿RE��RE��Ʊ���ͥ���̤�����ޤ���(ͥ���̤����������ʤ���ǽ���⤢��ޤ���) {m}�⤷����{m}?�����Ҥ���Ľ������줿���ȥ�ϡ����ȥ༫�Ȥ�Ʊ���ͥ���̤�����ޤ���(ͥ���̤����������ʤ���ǽ���⤢��ޤ���) ¾���̾�ν�����({m,n}��m��n������������ޤߤޤ�)����Ľ������줿���ȥ�Ϻ�Ĺ�ޥå�����Ѥ��ޤ��� ¾����ĥ��ʤ�������({m,n}?��m��n������������ޤߤޤ�)����Ľ������줿���ȥ�Ϻ�û�ޥå�����Ѥ��ޤ��� �֥�����ͥ���̤���ĺǽ�ν������줿���ȥ��Ʊ���ͥ���̤�����ޤ��� |�黻�Ҥ���³���줿2�İʾ�Υ֥�������ʤ�RE�Ϻ�Ĺ�ޥå�����Ѥ��ޤ���
RE���ΤؤΥޥå��Ѥε�§�ˤ�äƲݤ���줿����˽����������Ϥ���ͥ���̤˴�Ť��ƺ�Ĺ�⤷���Ϻ�û����ʬʸ����˥ޥå����ޤ��� �ޤ�������RE�����˻Ϥޤ�������ͥ���٤��˻Ϥޤ������˰����Ѥ��ޤ��� ���Τ褦�ˤ��ơ���¦�������Ϥ������ǤȤʤ�������ͥ���٤�����Ѥ����Ȥ����դ��Ƥ���������
{1,1}�����{1,1}?�����Ҥ������⤷����RE���Τ˻��Ѥ��ơ����줾�졢��Ĺ����û��ͥ���̤������뤳�Ȥ���ǽ�Ǥ���
�ޥå���Ĺ���ȹ����ǤǤϤʤ�ʸ�����¬���ޤ��� ��ʸ����������ޥå��������Ǥ��ʤ�ʸ�������Ĺ���ȹͤ����ޤ��� �㤨�С�bb*��abbbc�ο����3ʸ���ȥޥå�����(week|wee)(night|knights)��weeknights�Τ��٤Ƥ�10ʸ���ȥޥå�����abc���Ф���(.*).*���ޥå������ȡ���������ʬ����ɽ����3�Ĥ�ʸ�����٤Ƥ˥ޥå�����bc���Ф���(a*)*���ޥå������ȡ����Τ�RE�ȳ���������ɽ���϶�ʸ����˥ޥå����ޤ���
�⤷��ʸ����ʸ������̤��ʤ��ޥå������ꤵ���ȡ�����ե��٥å�ʸ������ʸ����ʸ���ζ��̤������ʤ��ʤä���Ʊ�����̤����ޤ��� �֥饱�åȼ��γ�¦�˥���ե��٥åȤ���ʸ����ʸ���������ä��̾��ʸ�����ФƤ�����硢�㤨�С�x��[xX]�Ȥʤ�褦����ʸ����ʸ���Ȥ�˥֥饱�åȼ��˼¼�Ū��ž������ޤ��� �֥饱�åȼ�����˸���줿���ϡ�(�㤨�С�)[x]��[xX]�Ȥʤꡢ�ޤ�[^x]��[^xX]�Ȥʤ�褦�ˡ����٤Ƥ���ʸ����ʸ�����줾����Ф��֥饱�åȼ����ɲä���ޤ���
���Ԥ���̤���ޥå������ꤵ���ȡ�.��^����Ѥ���֥饱�åȼ���(RE������Ū��Ĵ������Ƥ����Ȥ��Ƥ�ޥå������Ԥ�٤�ʤ��褦�ˤ��뤿���)����ʸ���˥ޥå����ʤ��ʤ�ޤ��� �ޤ���^��$�Ϥ��줾�����ľ���ľ���ζ�ʸ����˥ޥå���������ˡ����줾��ʸ�������Ƭ�������˥ޥå����ޤ��� ��������ARE���������פ�\A��\Z�ϡ���³���ơ�ʸ�������Ƭ�������Τ��˥ޥå����ޤ���
��ʬŪ�˲��Ԥ���̤���ޥå������ꤵ���ȡ�.�ȥ֥饱�åȼ��ϲ��Ԥ���̤���ޥå���Ԥʤ��褦�ˤʤ�ޤ�����^��$���ѹ�����ޤ���
��ʬŪ�˲��Ԥ�ն��̤���ޥå������ꤵ���ȡ� ^��$�ϲ��Ԥ���̤���ޥå���Ԥʤ��褦�ˤʤ�ޤ�����.�ȥ֥饱�åȼ����ѹ�����ޤ��� ����Ϥ��ޤ�ͭ�ѤǤϤ���ޤ����о����Τ��������Ƥ��ޤ���
�ܼ����Ǥ�RE��Ĺ���˴ؤ������¤Ϥ���ޤ��� ���������ܿ���������ץ������Ǥϡ�256�Х��Ȥ�ۤ���RE����Ѥ��٤��ǤϤ���ޤ��� POSIX�ߴ��μ����ǤϤ�������RE�ǤϺ��𤹤��ǽ��������ޤ���
ARE�ε�ǽ���⡢POSIX ERE�ȼ¼�Ū����ߴ���������Τϡ�\���֥饱�åȼ�����¦���ü�ʰ�̣��ʤ��Ȥ������ΤߤǤ��� ¾�Τ��٤Ƥ�ARE��ǽ�ϡ�POSIX ERE�Ǥ�������̤�����̤����ʸ��̤Ȥʤ빽ʸ����Ѥ��Ƥ��ޤ��� ����Ҥ�***��ʸ�ʤɤ�BRE�����ERE��POSIX��ʸ�ˤϤ���ޤ���
¿����ARE����Perl����ڤ��줿��ΤǤ��� �������������Ĥ����������졢Perl�γ�ĥ�Τ����Ĥ���¸�ߤ��ޤ��� ���դ��٤���ߴ����ˤϡ�\b��\B�����Ԥμ谷���˴ؤ����ü�����֤η�����Ԥ���̤���ޥå��˱ƶ��������ˤĤ����������֥饱�åȼ����ɲá���̤���Ը���������θ������ȤˤĤ��Ƥ����¡���Ĺ/��û(�ǽ�˥ޥå�����ǤϤʤ�)�ޥå��Υ��ޥ�ƥ��å�������ޤ���
PostgreSQL����7.4�������ǧ�Τ��줿��ARE��ERE��ʸ�֤��礭����ߴ���2�Ĥ���ޤ���
ARE�Ǥϡ�\�θ�˱ѿ�����³����Τϥ��������פ⤷���ϥ��顼�Ȥʤ�ޤ��� �����Υ����Ǥϡ������ñ�ˡ��ѿ����Ҥ���¾����ˡ�Ǥ����� ����ϡ��礭������ˤϤʤ�ʤ��Ϥ��Ǥ��� �����Υ����ǤϤ��������¤ӤҤ�����ͳ���ʤ�����Ǥ���
ARE�Ǥϡ�\��[]��Ǥ����̤�ʸ���Ǥ��� ���äơ��֥饱�åȼ��Ǥ�\��\\�ȵ��Ҥ��ʤ���Фʤ�ޤ���
�����ΰ㤤�ˤ��ۤȤ�ɤΥ��ץꥱ�������Ǥ�����ˤʤ뤳�ȤϤ��ޤꤢ��ޤ���ɬ�פ˱�����regex_flavor��extended�����ꤹ�뤳�ȤDz��뤳�Ȥ��Ǥ��ޤ���
BRE��ERE�Ȥ����Ĥ����̤ˤ����ưۤʤ�ޤ��� |��+��?�����̤�ʸ���Ǥ��ꡢ�����ε�ǽ�������ʤ�ΤϤ���ޤ��� �Х���ɤζ��ڤ��\{��\}�Ǥ��ꡢ{��}���Ȥ����̤�ʸ���Ǥ��� ����������Ҥˤ��뤿��γ�̤�\(��\)�Ǥ��ꡢ(��)���Ȥ����̤�ʸ���Ǥ��� ^�ϡ�RE����Ƭ�ˤ�������������������Ƭ�ξ�����������̤�ʸ���Ǥ��� $�ϡ�RE�������ˤ����������������������ξ�����������̤�ʸ���Ǥ��� �ޤ���*��RE����Ƭ�ˤ�������������������Ƭ�ˤ�����ˤ����̤�ʸ���ˤʤ�ޤ���(��������^���դ��Ƥ����ǽ���⤢��ޤ���) �Ǹ�ˡ�1��θ������Ȥ���Ѥ��뤳�Ȥ��Ǥ����ޤ���\<��\>�Ϥ��줾��[[:<:]]��[[:>:]]��Ʊ���Ǥ��� ¾�Υ��������פϻ��ѤǤ��ޤ���