¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

9.7. �ѥ�����ޥå�

PostgreSQL�ˤϡ��ѥ�����ޥå���Ԥ��˺ݤ���3�Ĥΰۤʤä���ˡ������ޤ�������Ū��SQL��LIKE�黻�ҡ������꿷����SIMILAR TO�黻�ҡ�SQL:1999���ɲä���ޤ����ˡ������POSIX�ͼ�������ɽ���Ǥ������ܤ�"����ʸ����Ϥ��Υѥ�����˰��פ��뤫��"���̤Ȥ��Ƥ⡢���פ�����ʬʸ�������Ф������ִ������ꡢ�����ư�����ʬ��ʸ�����ʬ�䤹��ؿ����Ѱդ���Ƥ��ޤ���

ティップ: �嵭�μ�ˡ�Ǥϸ����Ǥ��ʤ��褦�ʥѥ�����ޥå���ɬ�פʾ��ϡ�Perl�⤷����Tcl�ǥ桼������ؿ���������뤳�Ȥ�Ƥ���Ƥ���������

9.7.1. LIKE

string LIKE pattern [ESCAPE escape-character]
string NOT LIKE pattern [ESCAPE escape-character]

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�Ľ񤭤ޤ���

注意: �⤷standard_conforming_strings�ѥ�᡼����off�ˤ��Ƥ�����硢��ƥ��ʸ��������˵��Ҥ���Хå�����å����2��ɬ�פȤʤ�ޤ����ܺ٤�項4.1.2.1�򻲾Ȥ��Ƥ���������

Ʊ����ESCAPE ''�ȵ��Ҥ��뤳�Ȥǥ���������ʸ�������򤷤ʤ����Ȥ��ǽ�Ǥ��� ����ˤ�ꡢ���¾奨�������׵�����Ư���ʤ��ʤ�ޤ����Ĥޤꡢ�ѥ�������Υ����������������ӥѡ�����ȵ�������̤ʰ�̣�������뤳�ȤϤǤ��ʤ��ʤ�ޤ���

���ߤΥ�������˽��ä���ʸ����ʸ������̤��ʤ����פ�Ԥ��ΤǤ���С�LIKE�������ILIKE������ɤ�Ȥ����Ȥ��Ǥ��ޤ��������ɸ��SQL�ǤϤʤ���PostgreSQL�γ�ĥ�Ǥ���

~~�黻�Ҥ�LIKE���������ǡ�~~*��ILIKE���б����ޤ����ޤ�NOT LIKE�����NOT ILIKE��ɽ��!~~�����!~~*�黻�Ҥ�����ޤ�����������Ƥα黻�Ҥ�PostgreSQL��ͭ�Τ�ΤǤ���

9.7.2. SIMILAR TO����ɽ��

string SIMILAR TO pattern [ESCAPE escape-character]
string NOT SIMILAR TO pattern [ESCAPE escape-character]

SIMILAR TO�黻�Ҥϡ����Υѥ�����Ϳ����줿ʸ����˰��פ��뤫�ɤ����ˤ�ꡢ���⤷���ϵ����֤��ޤ�������ϡ�ɸ��SQL������ɽ���������Ѥ��ƥѥ�������᤹��Ȥ������ʳ��ϡ�LIKE��������Ƥ��ޤ���SQL������ɽ���ϡ�LIKEɽ���Ȱ���Ū������ɽ����ɽ���Ȥ򺮤���碌���褦�ʤ�ΤˤʤäƤ��ޤ���

LIKE��Ʊ�͡�SIMILAR TO�黻�Ҥϡ����Υѥ�����ʸ�������Τ˰��פ������Τ߽�����Ԥ��ޤ�������ϡ��ѥ�����ʸ����ΰ���ʬ�Ǥ��äƤ���פ��롢����Ū������ɽ����ư��ȤϰۤʤäƤ��ޤ����ޤ���LIKE��Ʊ�͡�SIMILAR TO�Ǥϡ�%�����_�򡢤��줾��Ǥ�դ�ʸ���󤪤��Ǥ�դ�ñ��ʸ�����̣����磻��ɥ�����ʸ���Ȥ��ƻ��Ѥ��ޤ��ʤ����ϡ�POSIX����ɽ���Ǥ�.*�����.���������ޤ��ˡ�

LIKE���������줿�嵭�ε�ǽ�˲ä���SIMILAR TO�Ǥϡ��ʲ��Τ褦��POSIX����ɽ�����������줿�ѥ�����ޥå��᥿ʸ���⥵�ݡ��Ȥ��Ƥ��ޤ���

SIMILAR TO�Ǥϥԥꥪ�ɡ�.�ˤϥ᥿ʸ���ǤϤʤ����Ȥ����դ��Ƥ���������

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)����Ѥ��ơ�SQL����ɽ���ѥ�����˰��פ�����ʬʸ�������Ф����Ȥ��Ǥ��ޤ���SIMILAR TO��Ʊ�͡����ꤷ���ѥ����󤬥ǡ���ʸ�������Τ˰��פ���ɬ�פ�����ޤ������פ��ʤ���硢�ؿ��Ͻ�λ����NULL���֤��ޤ������פ��������֤����٤��ѥ�����ΰ����򼨤�����ˡ�����������ʸ���θ����Ű������"�ˤ�Ҥ�����Τ�2�ĥѥ�����˴ޤ��ɬ�פ�����ޤ��������ΰ��dz��줿�ѥ�����ΰ����˰��פ���ƥ����Ȥ��֤���ޤ���

�㡧#"����Ѥ����֤����ʸ�������ڤ�ޤ���

substring('foobar' from '%#"o_b#"%' for '#')   oob
substring('foobar' from '#"o_b#"%' for '#')    NULL

9.7.3. POSIX����ɽ��

表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

POSIX�ѥ��������ˤĤ��ưʲ��ˤ��ܤ����������ޤ���

2�ĤΥѥ�᡼�������substring�ؿ���substring(string from pattern)����Ѥ��ơ�POSIX����ɽ���ѥ�����˰��פ�����ʬʸ�������Ф����Ȥ��Ǥ��ޤ������δؿ��ϡ����פ����Τ��ʤ����ˤ�NULL���֤���������ϥѥ�����˥ޥå������ƥ����Ȥΰ������֤��ޤ�����������Ǥ�դδݳ�̤���ĥѥ�����ξ�硢�ǽ�δݳ������ʬ����ɽ���ʺ��ݳ�̤��ǽ������Ρˤ˰��פ���ƥ����Ȥΰ������֤���ޤ��������㳰�򵯤������˥ѥ�������˴ݳ�̤���Ѥ������ΤǤ���С��������ɽ�����Τ�ݳ�̤ǰϤळ�Ȥ��Ǥ��ޤ����ѥ������������оݤ���ʬʸ���������˴ݳ�̤�ɬ�פʾ�硢��Ҥ���ª����ʤ��ݳ�̤򻲾Ȥ��Ƥ���������

�㡧

substring('foobar' from 'o.b')     oob
substring('foobar' from 'o(.)b')   o

regexp_replace�ؿ��ϡ�POSIX����ɽ���ѥ�����˰��פ�����ʬʸ����򿷵��ƥ����Ȥ��ִ����ޤ��� ��ʸ�ϡ�regexp_replace��source��pattern��replacement [��flags ]�ˤǤ��� pattern�˥ޥå����ʤ����ϡ�sourceʸ���󤬤��Τޤ��֤���ޤ��� ���פ���ȡ��ޥå���ʬʸ�����replacementʸ������ִ�����sourceʸ�����֤���ޤ��� replacement��\n��ޤळ�Ȥ��Ǥ��ޤ��� ������n�ϡ�n���ܤ˴ݳ�̤dz��줿�ѥ��������ʬɽ���˰��פ��븵����ʬʸ����򼨤���1����9�ޤǤο��Ǥ��� \&���ޤޤ줿��硢�ѥ��������ΤȰ��פ�����ʬʸ������������뤳�Ȥ򼨤��ޤ��� �ִ��ƥ�������˥�ƥ��Хå�����å������������ɬ�פ��������\\�ȵ��Ҥ��ޤ��� flags�ѥ�᡼���ϡ��ؿ���ư����ѹ����를���⤷���Ϥ���ʾ��1ʸ���ե饰��ޤ४�ץ����Υƥ�����ʸ����Ǥ����ե饰i����ʸ����ʸ������̤��ʤ����פ���ꤹ��������ե饰g�ϡ��ǽ�˰��פ�����ΤΤߤǤϤʤ������줾����פ�����ʬʸ������ִ�����ꤷ�ޤ�������¾��ͭ���ʥե饰��表9-19�˵��Ҥ���Ƥ��ޤ���

�㡧

regexp_replace('foobarbaz', 'b..', 'X')
                                   fooXbaz
regexp_replace('foobarbaz', 'b..', 'X', 'g')
                                   fooXX
regexp_replace('foobarbaz', 'b(..)', E'X\\1Y', 'g')
                                   fooXarYXazY

regexp_matches�ؿ���POSIX����ɽ���ѥ�����ޥå��η����ª���줿���Ƥ���ʬʸ����Υƥ�����������֤��ޤ���regexp_matches(string, pattern [, flags ])�ι�ʸ�ˤʤ�ޤ��� ���δؿ��ϲ���Ԥ��֤��ʤ���1�Ԥ��֤���ʣ���Ԥ��֤��Ȥ��ä����Ȥ��Ǥ��ޤ���������g�ե饰�򻲾Ȥ��Ʋ������� �⤷pattern���Ф��ư��פ��ʤ���硢�ؿ��ϹԤ��֤��ޤ��󡣤⤷���ѥ����󤬴ݳ�̤˳��줿��ʬʸ�����ޤޤʤ���硢��̤ϥѥ��������Τ˰��פ�����ʬʸ�����ޤ�ñ�����ǤΥƥ���������Ȥʤ�ޤ����⤷���ѥ����󤬴ݳ�̤˳��줿��ʬʸ�����ޤ��硢�ؿ��ϥѥ������n���ܤ˴ݳ�̤dz��줿��ʬʸ����˰��פ��롢n���ܤ����Ǥ���ʬʸ����Ǥ���ƥ�����������֤��ޤ���"��ª����ʤ�"�ݳ�̤Ͽ����ޤ���ˡ�flags�ѥ�᡼���ϡ��ؿ���ư����ѹ����를���⤷����ʣ����ñ��ʸ���ե饰��ޤ४�ץ����Υƥ�����ʸ����Ǥ����ե饰g�ϴؿ��ˡ��ǽ�Υޥå������Ǥʤ�ʸ�����������ƤΥޥå��򸡽Ф������������פιԤ��֤����ޤ�������¾ͭ���ʥե饰��表9-19�˵��ܤ���Ƥ��ޤ���

�㡧

SELECT regexp_matches('foobarbequebaz', '(bar)(beque)');
 regexp_matches 
----------------
 {bar,beque}
(1 row)

SELECT regexp_matches('foobarbequebazilbarfbonk', '(b[^b]+)(b[^b]+)', 'g');
 regexp_matches 
----------------
 {bar,beque}
 {bazil,barf}
(2 rows)

SELECT regexp_matches('foobarbequebaz', 'barbeque');
 regexp_matches 
----------------
 {barbeque}
(1 row)

���䤤��碌����Ѥ��뤳�Ȥǡ�regexp_matches()�����1�Ԥ����֤��ʤ��褦�˶������뤳�Ȥ���ǽ�Ǥ��� ����ϡ�SELECT�оݤΥꥹ�Ȥ��Ф����ޥå������Τ�̵�����Ǥ��äƤ����ƤιԤ��֤����������ä�ͭ�ѤǤ���

SELECT col1, (SELECT regexp_matches(col2, '(bar)(beque)')) FROM tab;

regexp_split_to_table�ؿ���POSIX����ɽ���ѥ��������ڤ�ʸ���Ȥ��ƻ��Ѥ���ʸ�����ʬ�䤷�ޤ���regexp_split_to_table(string, pattern [, flags ])�ι�ʸ�ˤʤ�ޤ���pattern�˰��פ��ʤ���硢�ؿ���string���֤��ޤ������ʤ��Ȥ�ҤȤĤΰ��פ�����С����줾��ΰ��פ��Ф��ƴؿ��ϺǸ�Υޥå��ν����ʤ��뤤��ʸ����λϤ�ˤ���ǽ�Υޥå��ޤǤΥƥ����Ȥ��֤��ޤ�����Ϥ�ޥå����ʤ��ʤ�ȺǸ�Υޥå��ν���꤫��ʸ����κǸ�ޤǥƥ����Ȥ��֤��ޤ��� flags�ѥ�᡼���ϡ��ؿ���ư����ѹ����를���⤷����ʣ����ñ��ʸ���ե饰��ޤ४�ץ����Υƥ�����ʸ����Ǥ���regexp_split_to_table��表9-19�ǵ��ܤ���Ƥ���ե饰�򥵥ݡ��Ȥ��ޤ���

regexp_split_to_array�ؿ��ϡ�regexp_split_to_array�����η�̤�text������֤����Ȥ�����ơ�regexp_split_to_table��Ʊ��ư��򤷤ޤ���regexp_split_to_array(string, pattern [, flags ])�ι�ʸ�ˤʤ�ޤ���

�㡧


SELECT foo FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog', E'\\s+') AS foo;
  foo   
--------
 the    
 quick  
 brown  
 fox    
 jumped 
 over   
 the    
 lazy   
 dog    
(9 rows)

SELECT regexp_split_to_array('the quick brown fox jumped over the lazy dog', E'\\s+');
              regexp_split_to_array             
------------------------------------------------
 {the,quick,brown,fox,jumped,over,the,lazy,dog}
(1 row)

SELECT foo FROM regexp_split_to_table('the quick brown fox', E'\\s*') AS foo;
 foo 
-----
 t         
 h         
 e         
 q         
 u         
 i         
 c         
 k         
 b         
 r         
 o         
 w         
 n         
 f         
 o         
 x         
(16 rows)

�Ǹ���㤬���餫�ˤ��Ƥ���褦�ˡ�regexpʬ��ؿ���ʸ����κǽ餢�뤤�Ͻ���ꡢ�⤷�������Υޥå���ľ���ȯ������Ĺ��������ʤ��ޥå���̵�뤷�ޤ���regexp_matches�Ǽ������줿regexp�ޥå��θ��ʤ�����ˤ�������Ƥ�ޤ��󤬡���̳��ϺǤ�Ȥ�������ɤ�ư��Ǥ���Perl�Τ褦��¾�Υ��եȥ����������ƥ������褦���������Ѥ��ޤ���

9.7.3.1. ����ɽ���ξܺ�

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�Ͼ�ˡ��ޤ�����ɽ����ARE��§�˽����ȿ�¬���ޤ�����������RE�ѥ���������ˡ�項9.7.3.4�˵��ܤ���Ƥ���褦�������ߥ��ץ�������ɲä��뤳�Ȥˤ�ꡢ���¤�줿ERE�����뤤��BRE��§�����򤹤뤳�Ȥ��Ǥ��ޤ�������ϡ�POSIX1003.2�ε�§�����Τ˴��Ԥ��Ƥ��륢�ץꥱ�������Ȥθߴ����˴ؤ���ͭ�ѤǤ���

����ɽ����|�Ƕ��ڤ�줿��1�Ĥޤ���ʣ�����֥����Ȥ����������ޤ����֥����Τ����줫1�Ĥ˰��פ���а��פ������Ȥˤʤ�ޤ���

�֥����ϥ����İʾ���̲����ȥ��⤷����������Ϣ��Ǥ����ǽ�Τ�Τ˥ޥå��ˡ������裲���ܤΤ�Τ˥ޥå��򡢤Ȥ����դ��˰��פ��ޤ����ʤ������Υ֥����϶�ʸ����˰��פ��ޤ���

�̲����ȥ�Ȥϡ�ñ����̻������������դ����ȥ��Τ��ȤǤ����̻���Ҥ��ʤ��ȡ����ȥ�˰��פ����Τ����פ������Ȥˤʤ�ޤ����̻���Ҥ������硢���ȥ�Ȥΰ��פ����󤢤뤫�ǰ��פ������Ȥˤʤ�ޤ������ȥ��ϡ�表9-12�˼�������ΤΤ����줫���뤳�Ȥ��Ǥ��ޤ���表9-13�������ǽ���̻���ҤȤ��ΰ�̣�򼨤��ޤ���

�����϶�ʸ���ˡ�����ξ��˹礦���Τߤ˰��פ��ޤ��� ���ȥ����ѤǤ���Ȥ����ˤ��������Ѥ��뤳�Ȥ��Ǥ��ޤ��� ���������θ���̻���Ҥ��դ��뤳�ȤϤǤ��ޤ��� ñ��������表9-14�˼����ޤ������¾�Τ����Ĥ���������������ޤ���

表 9-12. ����ɽ���Υ��ȥ�

���ȥ�����
(re) �ʤ�����re ��Ǥ�դ�����ɽ���ǡ���re�ȤΥޥå���Ŭ�礹���Ǥ��� �ޥå��ϲ�ǽ�Ǥ�������ѤȰ�̣�Ť����ޤ���
(?:re) ���Ʊ���������������פ�����ѤȰ�̣�Ť����ޤ��󡣡�"��ª����ʤ�"��̤ν���ˡ�ARE�Τߡ�
. Ǥ�դ�1ʸ���˰��פ��ޤ���
[chars] �֥饱�åȼ��� chars�Τ����줫1�Ĥ˰��פ��ޤ� �ʾܺ٤�項9.7.3.2�򻲾Ȥ��Ƥ��������ˡ�
\k �ʤ�����k�ϱѿ����ʳ��Ǥ��������̤�ʸ���Ȥ��ƻ��ꤷ��ʸ���˰��פ��ޤ����㤨�С�\\�ϥХå�����å���ʸ���Ǥ���
\c ������c�ϱѿ����Ǥ� �ʤ����餯¾��ʸ�������³���ޤ��ˡ� �����������Ǥ��� 項9.7.3.3�򻲾Ȥ��Ƥ������� ��ARE�Τߡ�ERE��BRE�ǤϤ����c�˰��פ��ޤ��ˡ�
{ ľ��˿����ʳ��������硢������{�˰��פ��ޤ��� ľ��˿�����³����硢bound�ʸ�ҡˤλϤޤ�Ǥ���
x ������x��¾�˰�̣������ʤ�1ʸ���Ǥ��� x�˰��פ��ޤ���

RE�ϥХå�����å���\��ü�Ȥ��뤳�ȤϤǤ��ޤ���

注意: �⤷standard_conforming_strings�ѥ�᡼����off�ˤ��Ƥ�����硢��ƥ��ʸ��������˵��Ҥ���Хå�����å����2��ɬ�פȤʤ�ޤ����ܺ٤�項4.1.2.1�򻲾Ȥ��Ƥ���������

表 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.7.3.5�򻲾Ȥ��Ƥ���������

注意: �̻���Ҥ�ľ����̻���Ҥ�³���뤳�ȤϤǤ��ޤ����㤨��**��̵���Ǥ��� �̻���Ҥ��鼰��������Ϥ�뤳�ȤϤǤ������ޤ���^��|��ľ����դ��뤳�Ȥ�Ǥ��ޤ���

表 9-14. ����ɽ������

��������
^ ʸ�������Ƭ�˰���
$ ʸ����������˰���
(?=re) ��Թ��긡���ϡ�re�˰��פ�����ʬʸ���󤫤�Ϥޤ�Ǥ�դξ��˰��פ��ޤ���ARE�Τߡˡ�
(?!re) ������긡���ϡ�re�˰��פ��ʤ���ʬʸ���󤫤�Ϥޤ�Ǥ�դξ��˰��פ��ޤ���ARE�Τߡˡ�

��Ը�������ˤ�����������項9.7.3.3�򻲾ȡˤ�ޤ�뤳�ȤϤǤ��ޤ��󡣤ޤ���������γ�̤����Ƽ������ΤǤϤʤ��Ȥߤʤ���ޤ���

9.7.3.2. �֥饱�åȼ�

�֥饱�åȼ��Ȥϡ�[]���ʸ���Υꥹ�ȤǤ����̾盧��Ϥ��Υꥹ�����Ǥ�դ�1ʸ���˰��פ��ޤ��ʤ��������ʹߤ򻲾Ȥ��Ƥ��������ˡ��ꥹ�Ȥ�^����Ϥޤ��硢���Υꥹ�ȤλĤ�ˤ��ʤ�Ǥ�դ�1ʸ���˰��פ��ޤ����ꥹ�����2ʸ����-�Ƕ��ڤ��Ƥ�����硢�����2�ġʤ�ޤ�ˤδ֤ˤ���ʸ���ϰ����Τ�ɽ����ά���Ȥʤ�ޤ����㤨�С�ASCII�ˤ�����[0-9]�����Ƥο����˰��פ��ޤ����㤨��a-c-e�Ȥ��ä�����ü��ͭ����2�Ĥ��ϰϤ������Ǥ����ϰϤ��¤Ӥξȹ������˰�¸���Ƥ��ޤ����Ǥ��Τǡ��ܿ�ͽ��Υץ������ǤϤ���˰�¸���ƤϤʤ�ޤ���

���Υꥹ�Ȥ�]���Τ�Τ�ޤ��ˤϡ��������Ƭʸ���ʤ⤷���줬���Ѥ�����^�θ�ˤˤ��Ƥ���������-���Τ�Τ�ޤ��ˤϡ��������Ƭ�⤷����������ʸ���Ȥ��뤫���ϰϤ�2���ܤν�ü�Ȥ��Ƥ���������-���ϰϤκǽ�ν�ü�ǻ��Ѥ���ˤϡ�[.��.]�Ǥ����Ϥߡ��ȹ����ǡʸ�ҡˤˤ��Ƥ��������� �����ʸ���ȡ�[�ʼ�����򻲾ȡˤΤʤ�餫���Ȥ߹�碌������ӥ��������ס�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�Ȥθߴ����Ϥ���ޤ����������Ǥ��������Ƥ��ʤ����Ǥ����Ǥ��Τǡ�¾�����ƥ�ذܿ�ͽ��Υ��եȥ������Ǥλ��Ѥˤ����դ�ɬ�פǤ����̾��Ҥ����󥨥������פ������褯�Ȥ��ޤ�������Ϥ�Ϥ�ɸ��ǤϤ���ޤ��󤬡����Ϥ��䤹����ΤǤ���

9.7.3.3. ����ɽ������������

�����������Ȥϡ�\����Ϥޤ�ѿ��������θ��³���ü���¤ӤǤ������������פˤϡ�ʸ������ȥꡢ���饹��ά�����󥨥������ס��������ȤȤ��ä��͡����Ѽ郎����ޤ���\�θ�˱ѿ�����³������ɤ⡢ͭ���ʥ��������פ������ʤ��¤Ӥ�ARE�Ǥ������Ǥ���ERE�ˤϥ��������פϤ���ޤ��󡣥֥饱�åȼ��γ�¦�Ǥϡ�\�θ�˱ѿ�����³���¤Ӥ�ñ�����̤�ʸ���Ȥ��Ƥ���ʸ�����̣���ޤ����֥饱�åȼ�����¦�Ǥϡ�\�����̤�ʸ���Ǥ��ʤ���ʸ����ERE��ARE�֤���ߴ�����1�ĤǤ��ˡ�

ʸ������ȥꥨ���������������ʸ����RE��Ǥ���¾�����ؤ�ʸ���λ�����ά�����뤿���¸�ߤ��ޤ���������表9-15�˼����ޤ�

���饹��ά�����������ϡ�����褯���Ѥ����ʸ�����饹�ξ�ά�����󶡤��ޤ���������表9-16�˼����ޤ���

���󥨥��������ϡ����ꤷ�����˹礦���˶�ʸ���˰��פ�������򥨥������פȤ���ɽ������ΤǤ���������表9-17�˼����ޤ���

����������\n�ˤϡ�ľ���˳�̤ǰϤޤ줿�����ˤ�äư��פ��줿��n���ܤ�Ʊ��ʸ����˰��פ��ޤ���表9-18�򻲾Ȥ��Ƥ��������ˡ��㤨�С�([bc])\1��bb�⤷����cc�˰��פ��ޤ�����bc��cb�ˤϰ��פ��ޤ���RE�Ǥ��������Τϸ������Ȥ����ˤʤ���Фʤ�ޤ��������ϳ���̤ν��֤��ֹ��դ�����ޤ��������ޤʤ���̤�������������ޤ���

注意: ���������פ���Ƭ��\��SQLʸ������Ȥ��ƥѥ���������Ϥ�����ˤ���Ťˤ��ʤ���Фʤ�ʤ����Ȥ�˺��ʤ��Ǥ����������ʲ�����򼨤��ޤ���

'123' ~ E'^\\d{3}' true

表 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�Ȥ���UTF16��16�ӥåȡ�Unicode��ʸ��
\Ustuvwxyz �ʤ�����stuvwxyz�����Τ�8���16�ʿ��Ǥ�����32�ӥåȤ�Unicode����ĥ�����Ȥ�������Τ���˳���
\v C�����Ʊ����ľ����
\xhhh �ʤ�����hhh��Ǥ�դ�16�ʿ����¤Ӥǡˤ���ʸ����16�ʿ��ͤ�0xhhh�Ȥʤ�ʸ���ʻ��Ѥ����16�ʿ��η���ˤ�����餺ñ���ʸ����
\0 �����ͤ�0��NULL�Х��ȡˤȤʤ�ʸ��
\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:]_] �ʥ���������������ޤޤ�뤳�Ȥ����ա�
\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.7.3.5�򻲾Ȥ��Ƥ��������ˡ�
\m ñ�����Ƭ�ˤΤ߰��פ��ޤ���
\M ñ��������ˤΤ߰��פ��ޤ���
\y ñ�����Ƭ�⤷���������ˤΤ߰��פ��ޤ���
\Y ñ�����Ƭ�⤷���������ʳ��ξ��ˤΤ߰��פ��ޤ���
\Z ʸ����������ˤΤ߰��פ��ޤ���$�Ȥΰ㤤�ˤĤ��Ƥ�項9.7.3.5�򻲾Ȥ��Ƥ��������ˡ�

ñ������Ҥ�[[:<:]]��[[:>:]]�ε����̤���������ޤ����֥饱�åȼ���Ǥ����󥨥������פ������Ǥ���

表 9-18. ����ɽ����������

��������������
\m �ʤ�����m���󥼥��ο��Ǥ�����������m���ܤؤθ�������
\mnn �ʤ�����m���󥼥��ο��Ǥ���nn�Ǥ���˷����ꤷ�ޤ���mnn10�ʿ��ͤϼ����߳�̤ο�����¿���ƤϤʤ�ޤ��󡣡�������mnn���ܤؤθ�������

注意: 8�ʿ���ʸ������ȥꥨ�������פȸ������Ȥδ֤ˤ�ۣ����������ޤ�����ǥҥ�ȤȤ��Ƽ������褦�ˤ���ϰʲ���ȯ��Ū��ˡ�Dz�褵��ޤ�����Ƭ��0�Ͼ��8�ʿ����������פ򼨤��ޤ������θ�˿�����³���ʤ�ñ����󥼥������Ͼ�˸������ȤȤ��Ʋ�ᤵ��ޤ�����������Ϥޤ�ʤ�ʣ���������¤Ӥϡ�Ŭ�ڤ������θ�ˤ���СʤĤޤꡢ�����ֹ椬���������Ѥ��ϰ���ˤ���С˸������ȤȤ��Ʋ�ᤵ��ޤ�������ʤ��С�8�ʿ��Ȥ��Ʋ�ᤵ��ޤ���

9.7.3.4. ����ɽ���᥿��ʸ

��Ҥμ繽ʸ��¾�ˡ��ü�ʷ����仨¿�ʹ�ʸŪ�ʵ�ǽ�����Ѳ�ǽ�Ǥ���

RE�ϡ�2�Ĥ��ü����������ֻ�Τɤ��餫����Ϥޤ�ޤ���RE��***:����Ϥޤ��ΤǤ���С�RE�λĤ��ARE�Ȳ�ᤵ��ޤ���(PostgreSQL��RE��ARE�Ȥ��ƿ�¬���뤿�ᡢ�̾�ϱƶ�������ޤ��󡣤�����������ɽ���ؿ����Ф���flags�ѥ�᡼������ꤵ�줿ERE��BRE�⡼�ɤǤϱƶ�������ޤ���) RE��***=����Ϥޤ��ΤǤ���С�RE�λĤ�ϡ����Ƥ�ʸ�������̤�ʸ���Ȥߤʤ�����ƥ��ʸ����Ȳ�ᤵ��ޤ���

ARE�������ߥ��ץ��������Ϥ���ޤ���(?xyz)�Ȥ����¤ӤǻĤ��RE�˱ƶ����륪�ץ�������ꤷ�ޤ��ʤ�����xyz��1�İʾ�αѻ��Ǥ��ˡ����Υ��ץ����ϡ������˷��ꤵ�줿���ץ������񤭤��ޤ���— �äˡ�����ɽ���黻�ҡ��⤷��������ɽ���ؿ���Ϳ����줿flags�ѥ�᡼���ˤ�꼨�������ʸ����ʸ���ζ��̤��񤭤��ޤ������Ѳ�ǽ�ʥ��ץ����ʸ����表9-19�˼����ޤ���������Ʊ�����ץ����ʸ����������ɽ���ؿ���flags�ѥ�᡼���ǻ��Ѥ���뤳�Ȥ����դ��Ʋ�������

表 9-19. ARE�����ߥ��ץ����ʸ��

���ץ��������
b �Ĥ��RE��BRE
c ��ʸ����ʸ������̤�����סʱ黻�Ҥǵ��ꤵ�����ʸ����ʸ���ζ��̤�ꤳ�λ��꤬ͥ�褵��ޤ��ˡ�
e �Ĥ��RE��ERE
i ��ʸ����ʸ������̤��ʤ����ס�項9.7.3.5�򻲾ȡˡʱ黻�Ҥǵ��ꤵ�����ʸ����ʸ���ζ��̤�ꤳ�λ��꤬ͥ�褵��ޤ��ˡ�
m n�����Ū��Ʊ����
n ���Ԥ���̤�����ס�項9.7.3.5�򻲾ȡ�
p ��ʬŪ�ʲ��Ԥ���̤�����ס�項9.7.3.5�򻲾ȡ�
q �Ĥ��RE�ϥ�ƥ���"�������դ����줿"��ʸ�����������̤�ʸ��
s ���Ԥ���̤��ʤ��ޥå��ʥǥե���ȡ�
t ������ι�ʸ�ʥǥե���ȡ���ҡ�
w ��ʬŪ�ʲ��Զ��̤εա�"�磻������"�˥ޥå���項9.7.3.5�򻲾ȡ�
x ��ĥ��ʸ�ʸ�ҡ�

�����ߥ��ץ����Ϥ����¤Ӥν�ü)��ͭ���ˤʤ�ޤ���ARE����Ƭ�ʤ⤷***:����Ҥ�����Ф��θ�ˤǤΤ����Ѳ�ǽ�Ǥ���

���Ƥ�ʸ������̣����ġ��̾�Ρ����������RE��ʸ�˲ä���x�����ߥ��ץ�������ꤹ�뤳�Ȥ����ѤǤ�����ĥ��ʸ������ޤ�����ĥ��ʸ�Ǥϡ�RE��ζ���ʸ����̵�뤵�졢#�Ȥ��θ�β��ԡʤ⤷����RE�ν�ü�ˤδ֤����Ƥ�ʸ����Ʊ�ͤǤ�������ˤ�ꡢ�����դ���ʣ����RE�Υ������դ�����ǽ�ˤʤ�ޤ������ܵ�§���Ф���3�Ĥ��㳰������ޤ���

  • ľ����\���դ�������ʸ���⤷����#���ݻ�����ޤ���

  • �֥饱�åȼ���ζ���ʸ���⤷����#���ݻ�����ޤ���

  • (?:�ʤɤ�ʣ��ʸ������ܥ�Ǥϡ�����ʸ���ȥ����Ȥ������Ǥ���

�����Ǥζ���ʸ���Ȥϡ����򡢥��֡����ԡ����ڡ���ʸ�����饹��°����ʸ���Ǥ���

�Ǹ�ˡ�ARE�Υ֥饱�åȼ��γ�¦�Ǥϡ�(?#ttt)�Ȥ����¤Ӥϥ����Ȥˤʤ�ޤ��ʤ�����ttt��)��ޤޤʤ�Ǥ�դΥƥ����ȤǤ��ˡ������֤��ˤʤ�ޤ����������(?:�ʤɤ�ʣ��ʸ������ܥ��ʸ���֤Ǥϻ��ѤǤ��ޤ��󡣤������������Ȥϼ������Ȥ���������Ū�껺�Ǥ������Τ��ᡢ���λ��Ѥϴ���ޤ�������˳�ĥ��ʸ����Ѥ��Ƥ���������

����***=����Ҥ����ꤵ�졢�桼�������Ϥ�RE�ǤϤʤ���ƥ��Ȥ��ư������硢�����Υ᥿��ʸ��ĥ�ϻ����Ǥ��ޤ�����

9.7.3.5. ����ɽ���ޥå���§

RE��ʸ��������1�İʾ����ʬʸ����Ȱ��פ�����ˤ����ơ�RE�Ϻǽ�˥ޥå����Ϥޤä���ʬʸ����Ȱ��פ��ޤ������ΰ��֤���ޤ�1�İʾ����ʬʸ����ȥޥå������ݤϡ�����ɽ������û�ޥå���Ԥ�ʤ�����ĥ�귿������û�ޥå���Ԥ�������ĥ�귿�����ˤ�äơ���Ĺ���פ⤷���Ϻ�û���פ�ʸ����Τɤ��餫�˰��פ��ޤ�

RE����Ĺ�ޥå����ɤ����ϰʲ��ε�§�ˤ�äƷ�ޤ�ޤ���

  • �ۤȤ�ɤΥ��ȥप������Ƥμ�����ĥ��°��������ޤ���ʤ�������ư�����̤Υƥ����Ȥˤޤä������פ��ʤ�����Ǥ��ˡ�

  • RE���̤dz�뤳�Ȥ���ĥ�꤫�ɤ������ѹ����ޤ���

  • {m}�⤷����{m}?�Ȥ��ä����귫���֤������̻���Ҥ�����̻����դ����ȥ�ϡ����ȥ༫�Ȥ�Ʊ�����ĥ�ꤵ������ޤ��ʤޤä��������ʤ���ǽ���⤢��ޤ��ˡ�

  • ¾���̾���̻���ҡ�{m,n}��m��n������������ޤߤޤ��ˤ�����̻����դ����ȥ����ĥ�귿�Ǥ��ʺ�Ĺ�ޥå�����Ѥ��ޤ��ˡ�

  • ¾������ĥ�귿�̻���ҡ�{m,n}?��m��n������������ޤߤޤ��ˤ�����̻����դ����ȥ������ĥ�귿�Ǥ��ʺ�û�ޥå�����Ѥ��ޤ��ˡ�

  • �Ǿ�̥�٥��|�黻�Ҥ�����ʤ�RE�Ǥ���֥����ϡ��ǽ����ĥ��°��������̻����դ����ȥ��Ʊ�����ĥ��°��������ޤ���

  • |�黻�Ҥ���³���줿2�İʾ�Υ֥�������ʤ�RE�Ͼ����ĥ�귿�Ǥ���

��ε�§�ϡ��ġ����̻����դ����ȥ�����ǤϤʤ����̻����դ����ȥ��ʣ���ޤ�֥�����RE���Τ���ĥ��°���˴�Ϣ���ޤ����Ĥޤꡢ�֥�����RE���Τ����ΤȤ�����Ĺ�ޤ��Ϻ�û����ʬʸ����˰��פ���Ȥ�����ˡ�ǥޥå��������Ԥ��ޤ������ΤΥޥå���Ĺ������ޤ�ȡ��������ʬ���˰��פ�����ʬ��������ʬ������ĥ��°���ˤ�äƷ�ޤ�ޤ������λ���RE��Ǥ�����ˤ�����ʬ������ˤ�����ʬ������⤤ͥ���٤�����ޤ���

���ΰ�̣����򼨤��ޤ���

SELECT SUBSTRING('XY1234Z', 'Y*([0-9]{1,3})');
Result: 123
SELECT SUBSTRING('XY1234Z', 'Y*?([0-9]{1,3})');
Result: 1

�ǽ����Ǥϡ�Y*����ĥ�귿�Ǥ��뤿�ᡢRE�����ΤȤ�����ĥ�귿�Ǥ����ޥå���Y�ΰ��֤���Ϥޤꡢ���������ǽ�ʸ¤��Ĺ��ʸ����˰��פ��ޤ����Ĥޤ�Y123�Ȥʤ�ޤ������Ϥϳ�̤dz��줿��ʬ���Ĥޤ�123�Ȥʤ�ޤ���2���ܤ���Ǥϡ�Y*?������ĥ�귿�Τ��ᡢRE�����ΤȤ�������ĥ�귿�Ǥ����ޥå���Y�ΰ��֤���Ϥޤꡢ���������ǽ�ʸ¤��û��ʸ����˰��פ��ޤ����Ĥޤ�Y1�Ȥʤ�ޤ�����ʬ��[0-9]{1,3}����ĥ�귿�Ǥ��������ꤵ�줿���פ������Τ�Ĺ�����ѹ����뤳�ȤϤǤ��ޤ��󡣤������äơ�����Ū��1�˰��פ��뤳�Ȥˤʤ�ޤ���

�ޤȤ��ȡ�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�ϡ���³���ơ�ʸ�������Ƭ�������Τ��˰��פ��ޤ���

��ʬŪ�˲��Ԥ���̤���ޥå������ꤵ���ȡ�.�ȥ֥饱�åȼ��ϲ��Ԥ���̤�����פ�Ԥ��褦�ˤʤ�ޤ�����^��$���ѹ�����ޤ���

��ʬŪ�˲��Ԥ���̤���եޥå������ꤵ���ȡ�^��$�ϲ��Ԥ���̤�����פ�Ԥ��褦�ˤʤ�ޤ�����.�ȥ֥饱�åȼ����ѹ�����ޤ��󡣤���Ϥ��ޤ�ͭ�ѤǤϤ���ޤ����о����Τ�����󶡤���Ƥ��ޤ���

9.7.3.6. ���¤ȸߴ���

�ܼ����Ǥ�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�Ǥϡ�\��[]��Ǥ����̤�ʸ���Ǥ����������äơ��֥饱�åȼ��Ǥ�\��\\�ȵ��Ҥ��ʤ���Фʤ�ޤ���

9.7.3.7. ��������ɽ��

BRE��ERE�Ȥ����Ĥ����̤ˤ����ưۤʤ�ޤ���BRE�ˤ����Ƥϡ� |��+��?�����̤�ʸ���Ǥ��ꡢ�����ε�ǽ�������ʤ�ΤϤ���ޤ��� �Х���ɤζ��ڤ��\{��\}�Ǥ��ꡢ{��}���Ȥ����̤�ʸ���Ǥ��� ����������Ҥˤ��뤿��γ�̤�\(��\)�Ǥ��ꡢ(��)���Ȥ����̤�ʸ���Ǥ��� ^�ϡ�RE����Ƭ�ˤ�������������������Ƭ�ξ�����������̤�ʸ���Ǥ��� $�ϡ�RE�������ˤ����������������������ξ�����������̤�ʸ���Ǥ��� �ޤ���*��RE����Ƭ�ˤ�������������������Ƭ�ˤ�����ˤ����̤�ʸ���ˤʤ�ޤ��ʤ�������^���դ��Ƥ����ǽ���⤢��ޤ��ˡ� �Ǹ�ˡ�1��θ������Ȥ���Ѥ��뤳�Ȥ��Ǥ����ޤ���BRE�ˤ����Ƥϡ�\<��\>�Ϥ��줾��[[:<:]]��[[:>:]]��Ʊ���Ǥ���