PostgreSQL �ˤϥѥ�����ޥå���Ԥ��˺ݤ�����Ĥΰۤʤä���ˡ������ޤ����ҤȤĤ� SQL �� LIKE �黻�Ҥ�Ȥ���ˡ�ȡ��⤦�ҤȤ� POSIX ɸ�������ɽ����Ȥ���ˡ�Ǥ���
Tip: �����ε�ǽ�ʾ�Υѥ�����ޥå���ɬ�פǤ��ä��ꡢ�ѥ������ư�����ִ����Ѵ���Ԥ��������� 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 ʸ���ʾ��ʸ����ȤΥޥå����̣���ޤ���
LIKE �ˤ��ѥ�����ޥå��Ͼ��ʸ�������Τ��Ф��ƹԤ��ޤ����Ǥ����顢ʸ������Τ����ʤ���֤˱����Ƥ�ѥ�����ޥå�������ˤϥѡ�����ȵ����Ϥ�Ƚ����������ɬ�פ�����ޤ���
��ƥ��Υ��������������ѡ�����ȵ����¾��ʸ���Υޥå��˻��Ѥ���ΤǤϤʤ����Τ�Τ�ޥå������������ˤϡ� pattern ����Τ��줾��Υ�������������ȥѡ�����ȵ���ϥ���������ʸ���ǥ��������פ���ʤ���Фʤ�ޤ��ǥե���ȤΥ���������ʸ���ϵե���å���Ǥ�����ESCAPE ���¾��ʸ������ꤹ�뤳�Ȥ��Ǥ��ޤ�������������ʸ�����Τ�Τ�ޥå�������ˤϥ���������ʸ����դ��Ľޤ���
��ƥ��ʸ����ˤ����Ƶե���å���ˤϻϤᤫ�����̤ʰ�̣�礤������Τǵե���å����ޤ���ѥ���������Ҥ���Ȥ����䤤��碌����� 2 �Ĥεե���å���Ҥ���ɬ�פ����뤳�Ȥ����դ��Ƥ��������� ESCAPE ���¾�Υ���������ʸ��������Ф��Τ褦�ʾ��������Ǥ����ե���å���� LIKE ���ˤȤ��ü��ʸ���ǤϤʤ��ʤ�ޤ���(�ȤϤ��äƤ⡢��ƥ��ʸ����ѡ����ˤȤäƤϰ����Ȥ����ü�ʸ���ʤΤǡ���Ϥ� 2 �Ĥ�ɬ�פǤ���)
Ʊ���� ESCAPE '' �ȵ��Ҥ��뤳�Ȥǥ���������ʸ�������ʤ����Ȥ��ǽ�Ǥ������ξ��ˤϥѥ�������Υ�������������ȥѡ�����ȵ�������̤ʰ�̣��������ʤ����뤳�ȤϤǤ��ޤ���
����ư���Ƥ����������˽��ä���ʸ����ʸ������̤��ʤ��ޥå���Ԥ��ΤǤ���� LIKE ���ؤ��� ILIKE ������ɤ�Ȥ����Ȥ��Ǥ��ޤ�������� SQL ɸ��ǤϤ���ޤ��� PostgreSQL �γ�ĥ�Ǥ���
~~ �黻�Ҥ� LIKE ���������ǡ�~~* �� ILIKE ���б����ޤ����ޤ� NOT LIKE ����� NOT ILIKE ��ɽ�� !~~ ����� !~~* �黻�Ҥ�����ޤ�������餹�٤Ƥα黻�Ҥ� PostgreSQL ��ͭ�Τ�ΤǤ���
Table 4-10. ����ɽ���ޥå��黻��
�黻�� | ���� | �� |
---|---|---|
~ | ����ɽ���˥ޥå�����ʸ����ʸ���ζ��̤��� | 'thomas' ~ '.*thomas.*' |
~* | ����ɽ���˥ޥå�����ʸ����ʸ���ζ��̤ʤ� | 'thomas' ~* '.*Thomas.*' |
!~ | ����ɽ���˥ޥå����ʤ�����ʸ����ʸ���ζ��̤��� | 'thomas' !~ '.*Thomas.*' |
!~* | ����ɽ���˥ޥå����ʤ�����ʸ����ʸ���ζ��̤ʤ� | 'thomas' !~* '.*vadim.*' |
POSIX �ˤ������ɽ���ϥѥ�����ޥå��Ȥ�����̣�礤�Ǥ� LIKE �ؿ����⤵���ͭ�ϤǤ���egrep�� sed�����뤤�� awk �Τ褦��¿����Unix �ġ���Ϥ����Dz��⤷�Ƥ���Τ���������ѥ�����ޥå��������Ѥ��Ƥ��ޤ���
����ɽ���Ȥ�ʸ����ν���(��������)�δ�ά���줿����Ǥ���ʸ����Ϣ�ʤäƤ����ΤǤ�������ʸ��������ɽ���ǵ��Ҥ��줿������������ǤˤʤäƤ���С�����ʸ���������ɽ���˥ޥå����Ƥ���ȸƤФ�ޤ��� LIKE �ؿ���Ȥä�����Ʊ���褦�ˡ�����ɽ��������ü�ʸ���Ȥ���Ƥ����ΰʳ����ѥ�����ʸ����ʸ����ȴ����˥ޥå�����ޤ����ȤϤ��äƤ�����ɽ���� LIKE �ؿ������Ѥ����ΤȰۤʤ��ü�ʸ������Ѥ��ޤ���LIKE �ؿ��Υѥ�����Ȱ�ä�����ɽ���ϡ�����Ū������ɽ����ʸ����κǽ�ޤ��ϺǸ夫��Ȱ��ֻ��� (anchoring) ����Ƥ��ʤ��¤�ʸ������Τɤΰ��֤Ǥ�ޥå���Ԥ��ޤ���
POSIX 1003.2 ������ˤ��ȡ�����ɽ�� ("RE")�ˤ� 2 �Ĥη���������Ȥ���ޤ����ǿ��� (modern) ����ɽ��(��ޤ��ˤ��ä� egrep ����ɽ������Τ� 1003.2 �Ǥ� "��ĥ (extended)" ED �ȸƤ�Ǥ���)������ӻȤ��ʤ��ʤä�����ɽ��(��ޤ��ˤ� ed ����ɽ������Τ� 1003.2 �Ǥ�"�١����å� (basic)" ����ɽ���ȸƤ�Ǥ���)����ĤǤ��� PostgreSQL �Ϻǿ��η�����������Ƥ��ޤ���
�ǿ�������ɽ���ϤҤȤĤޤ��Ϥ���ʾ�� | �Ƕ��ڤ�줿���Ǥʤ��֥����Ǥ����֥����ΰ�ĤȤǤ�ޥå�����Хޥå��������Ȥˤʤ�ޤ���
�֥����ϤҤȤĤޤ��Ϥ���ʾ�� �ԡ��� ��Ϣ��Ǥ����ǽ�Υԡ������餽�μ��Υԡ����ؤΥޥå��Ȥ����դ��˥ޥå�����ޤ���
�ԡ����Ȥ������ǡ�*�� +��?�����뤤�� �Х���������³����ǽ��������ޤ��� * �����³�����Ҥ� 0 ��ʾ�Ϣ³���Ƹ��ҤȤΥޥå���Ԥ��ޥå��Ǥ��� + �����³�����Ҥ� 1 ��⤷���Ϥ���ʾ�Ϣ³���Ƹ��ҤȤΥޥå���Ԥ��ޥå��Ǥ���? �����³�����Ҥ� 0 �ޤ��� 1 �Ҥȥޥå���Ԥ��ޤ���
�Х�����ϡ�{ �ǻϤޤꡢ���θ�����̵�� 10 �ʿ�������³�������θ�ˤ��֤� , ��³���������Ƥ��θ�ˤ���⤿�֤�⤦������̵�� 10 �ʿ�������³���ơ��Ǹ��ɬ�� } �dz���ޤ��������� 0 ���� RE_DUP_MAX (255) �ޤǤ��ϰϤǤ��äơ�2 ��¸�ߤ�����ǽ�������� 2 ���ܤ���������礭�����äƤϤ����ޤ���1 �Ĥ����� i �����äƥ���ޤ�����ʤ��Х���ɤ�³�����Ҥ����Τ� i ��Ϣ³���Ƹ��Ҥȥޥå���Ԥ��ޤ���1 �Ĥ����� i �ȥ���ޤ����Ӥ���Х���ɤ�³�����Ҥ� i ��ʾ�Ϣ³���Ƹ��Ҥȥޥå���Ԥ��ޤ���2 �Ĥ����� i �� j ����ä��Х���ɤ�³�����Ҥ� i ���� j ��(i �� j ��ޤ����)Ϣ³���Ƹ��Ҥȥޥå���Ԥ��ޤ���
Note: ȿ���黻�� (?��*�� +���⤷���ϥХ����)��¾��ȿ���黻�Ҥ�ʻ�Ѥ��뤳�ȤϤǤ��ޤ���ȿ���黻�Ҥϼ��ޤ��������Ϥ����뤳�Ȥ䡢 ^ ���뤤�� | �θ��³�����ȤϤǤ��ޤ���
������(����ɽ���ȥޥå�����ޥå���¹Ԥ���) () �dz��줿����ɽ����(NULL ��ȥޥå���¹Ԥ���) () �ζ����硢 ��̼�(���)��(�����ʤ� 1 ʸ���Ȥ�ޥå���¹Ԥ���) .��(����ʸ�������Ƭ�ˤ��� NULL ʸ����ȥޥå���¹Ԥ���) ^��(����ʸ����θ����Υ̥�ʸ����ȥޥå���¹Ԥ���) $ ��(�����ʸ���Ȥ��Ƥ���ʸ�����ޥå������)ʸ�� ^.[$()|*+?{\ �������֤���� \��(�������� \ ��¸�ߤ��Ƥ��ʤ��ä����Τ褦�ˡ�����ʸ��������ΰ�̣�����ʸ���Ȥ��ƥޥå������)�����ʳ���ʸ�������ˤ��� \���⤷���� { ��ľ��˿����ʳ���ʸ����³������Τ��̾��ʸ���ǡ��Х���ɤγ��ϤǤϤ���ޤ���\������ɽ����λ�����뤳�Ȥ϶ؤ����Ƥ��ޤ���
�ե���å��� (\) �ϸ���ȥ�ƥ��ʸ����ˤ��������̤ΰ�̣��ͭ�뤳�Ȥ����դ��Ƥ����������Ǥ����顢�ե���å��夬����ѥ���������Ҥ���ˤ��䤤��碌����Ǥդ��Ĥεե���å���Ҥ��ʤ���Фʤ�ޤ���
�ѳ��������ɽ�� (bracket expression) �Ȥ� [] �dz��줿ʸ���Υꥹ�ȤǤ����̾�ꥹ�Ȥ���Τ�����ΰ�ʸ���Ȥ�ޥå���Ԥ��ޤ�(�ʲ��⻲��)���ꥹ�Ȥ� ^ �ǻϤޤäƤ�����ϥꥹ�Ȥ�ͭ��Ĥ��ʸ���ǤϤʤ��ɤ�ʰ�ʸ���Ȥ�ޥå���Ԥ��ޤ�(�ʲ��⻲��)���ꥹ�Ȥ������Ĥ�ʸ���� - ��ʬ�䤵��Ƥ����硢����ʸ����ޤ��Ϣ�����Ƥ���Ҥ����ʸ���ϰϤ���ά���Ǥ����㤨�С� ASCII �� [0-9] �Ϥ��٤Ƥ�10 �ʿ��ȥޥå���¹Ԥ��ޤ���a-c-e �Τ褦����Ĥν���ΰ��֤��ϰϤ���ꤹ�뤳�ȤϤǤ��ޤ����ϰϤϤ��ʤ�Ϣ���ν��֤˰�¸���ޤ��Τǡ��ܿ�����������ץ������Ǥϻ��Ѥ��Ƥ���������
�ꥹ�Ȥ˥�ƥ�� ] ��ޤ����ϡ�(^ ��¸�ߤ���Ф���ľ���)�ǽ��ʸ���Ȥ��ޤ����ꥹ�Ȥ˥�ƥ�� - ��ޤ�����ϡ��ǽ��ʸ�����Ǹ��ʸ�����⤷�����ϰϤν�λ�Ȥ��ޤ�����ƥ�� - ���ϰϤγ��ϤȤ��������ˤϾȹ�����(collating element����������)�Ȥ��뤿��� [. �� .] �dz�äƤ������������������㳰�� [�ʼ�������ȡˤ��Ȥ߹�碌���δ��Ĥ�������� \ ��ޤह�٤Ƥ����̤ʰ�̣�����ʸ���Ϥ����ü�����ѳ��������ɽ����Ǽ����ޤ���
�ѳ��������ɽ����ǡ�[. �� .] �ǰϤޤ줿�ȹ����Ǥϡʤ��������ʸ�����ȹ���̾�Ǥ��뤫�Τ褦�˾ȹ��Ԥ���ʸ�����ޤ���ʣ����ʸ����)���ξȹ����Ǥ�ʸ������̣���ޤ���ʸ����ϳѳ��������ɽ���ꥹ�Ȥ�ñ������ǤǤ����Ǥ����顢ʣ��ʸ���ˤ��ȹ����ǤΤ���ѳ��������ɽ���ϰ�ʸ���ʾ�ȥޥå����ޤ����㤨�С��ȹ����˾ȹ����� ch �����������ɽ�� [[.ch.]]*c �� chchcc ʸ����κǽ�� 5 ʸ���ȥޥå���Ԥ��ޤ���
�ѳ��������ɽ����ǡ�[= �� =] �ǰϤޤ줿�ȹ����Ǥ��������饹�ǡ����켫�Ȥ�ޤᡢ����������ʤ��٤Ƥξȹ����Ǥ�ʸ������̣���ޤ���(�����ȹ����Ǥ��ʤ���硢�Ϥ�Ǥ���ѳ�̤ζ��ڤ�ʸ����ñ�ʤ� [. �� .] �Ȥ��ư����ޤ���)�㤨�С�o �� ^ ���������饹�ι������Ǥξ�硢 [[=o=]]��[[=^=]]������� [o^] �Ϥ��٤�Ʊ���Ǥ����������饹���ϰϤν�ü����ˤϤǤ��ޤ���
�ѳ��������ɽ����ǡ� [: �� :] �˰Ϥޤ�Ƥ���ʸ�����饹��̾�ΤϤ��Υ��饹��°����ʸ�����٤ƤΥꥹ�Ȥ��̣���ޤ���ɸ��ʸ�����饹̾�ˤϰʲ��Τ褦�ʤ�Τ�����ޤ��� alnum�� alpha�� blank�� cntrl�� digit�� graph�� lower�� print�� punct�� space�� upper�� xdigit�� ������ ctype ���������Ƥ���ʸ�����饹���̣���ޤ�����������ˤ�ꤳ��ʳ��Τ�Τ�����뤳�Ȥ⤢��ޤ���ʸ�����饹���ϰϤν�ü����ˤϤǤ��ޤ���
�ѳ��������ɽ���ˤ� 2 �Ĥ��ü���㤬����ޤ����ѳ��������ɽ�� [[:<:]] �� [[:>:]] �Ϥ��줾��ñ�����Ƭ�������Υ̥�ʸ����˥ޥå����ޤ���ñ��ȤϤ��������ñ��ʸ�����դ��ʤ�ñ��ʸ������������ޤ���ñ��ʸ���Ȥ�( ctype ���������Ƥ���)�ѿ����ޤ��ϥ�����������Ǥ�������ϳ�ĥ�ǡ��ߴ�������äƤ��ޤ��� POSIX 1003.2 �ǻ��ꤵ��Ƥ��ޤ���¾�Υ����ƥ�˰ܿ�ͽ��Υ��եȥ������ʤɤˤ����դƻ��Ѥ��Ƥ���������
����ɽ����ʸ�������� 1 �İʾ����ʬʸ����ȥޥå�������˱���������ɽ���Ϻǽ�˥ޥå�������ʬʸ����ȥޥå����ޤ������ΰ��֤���ޤ�1 �İʾ����ʬʸ����ȥޥå������ݤϡ�����ɽ���ϺǤ�Ĺ����ʬʸ����ȥޥå����ޤ�����ʬ����ɽ���ϡ�����ɽ���ˤ�������˳��Ϥ�����ʬ����ɽ�����夫�鳫�Ϥ��줿��ʬ����ɽ�����ͥ�褹�뤿�ᡢ���٤ƤΥޥå��ϲ�ǽ�ʸ¤�Ĺ���Ƥ��ɤ��Ȥ�������˽����¤�˱����Ʋ�ǽ�ʸ¤�Ĺ����ʬ����ɽ���Ȥ�ޥå����ޤ������äơ����⤤��٥����ʬ����ɽ���Ϥ���㤤��٥�ι������Ǥ�ͭ������ʬ����ɽ�����ͥ�褷�ޤ���
�ޥå���Ĺ���Ͼȹ����ǤǤϤʤ�ʸ�����¬���ޤ����̥�ʸ����������ޥå��������Ǥ��ʤ�ʸ�������Ĺ���ȹͤ����ޤ����㤨�С� bb* �� abbbc �ο���� 3 ʸ���ȥޥå�����(wee|week)(knights|nights) �� weeknights �Τ��٤Ƥ� 10 ʸ���ȥޥå����� abc ���Ф��� (.*).* ���ޥå������ȡ��ݳ������ʬ����ɽ���� 3 �Ĥ�ʸ�����٤Ƥ˥ޥå����� bc ���Ф��� (a*)* ���ޥå������ȡ����Τ�����ɽ���ȴݳ��������ɽ���ϥ̥�ʸ����˥ޥå����ޤ���
�⤷��ʸ����ʸ������̤��ʤ��ޥå������ꤵ���ȡ�����ե��٥å�ʸ������ʸ����ʸ���ζ��̤������ʤ��ʤä���Ʊ�����̤����ޤ����ѳ��������ɽ���γ�¦�˥���ե��٥åȤ���ʸ����ʸ���������ä��̾��ʸ�����ФƤ�����硢 �㤨�С�x �� [xX] �Ȥʤ�褦����ʸ����ʸ���Ȥ�˳ѳ��������ɽ���˼¼�Ū��ž������ޤ����ѳ������ɽ������˸���줿�Ȥ��ϡ�(�㤨�С�) [x] �� [xX] �Ȥʤꡢ�ޤ� [^x] �� [^xX] �Ȥʤ�褦�ˡ����٤Ƥ���ʸ����ʸ�����줾����Ф��ɲä���ޤ���
����ˤ�����¤����������ɽ����Ĺ������������¤Ϥ���ޤ�����λ��ѤϤۤ�����ɽ�����礭�����������㤷���Х����ȿ�������������ɽ����ʣ�����ˤϤۤ�̵�ط��Ǥ����Х����ȿ���ϥޥ�����ĥ�Ǽ�������Ƥ��ơ�ȿ�������¿���ä��ꡢ�Х����ȿ��������ҤˤʤäƤ���Ƚ������֤ȥ�����֤����ˤ��ޤ����㤨�С� ((((a{1,100}){1,100}){1,100}){1,100}){1,100} �Τ褦������ɽ����(�Ĥޤ�Ȥ���)��¸����ۤȤ�ɤΥޥ���ǥ���å��ΰ��Ȥ��ڤäƤ��ޤ��ޤ��� [1]
[1] | ������ 1994 ǯ�˽줿��ǤǤ������ˤʤ�ޤ������ͤϤ��֤��Ѥ�äƤ���Ǥ��礦�������¸³���Ƥ��ޤ��� |