summaryrefslogtreecommitdiff
path: root/doc/RE.ja
diff options
context:
space:
mode:
Diffstat (limited to 'doc/RE.ja')
-rw-r--r--doc/RE.ja460
1 files changed, 460 insertions, 0 deletions
diff --git a/doc/RE.ja b/doc/RE.ja
new file mode 100644
index 0000000..abde849
--- /dev/null
+++ b/doc/RE.ja
@@ -0,0 +1,460 @@
+���� ����ɽ�� Version 5.9.1 2007/09/05
+
+����ʸˡ: ONIG_SYNTAX_RUBY (������)
+
+
+1. ��������
+
+ \ ���򽤾� (����������) ����ɽ�������ͭ��/̵��������
+ | �����
+ (...) ������ (���롼��)
+ [...] ʸ������ (ʸ�����饹)
+
+
+2. ʸ��
+
+ \t ��ʿ���� (0x09)
+ \v ��ľ���� (0x0B)
+ \n ���� (0x0A)
+ \r ���� (0x0D)
+ \b ������� (0x08)
+ \f ���� (0x0C)
+ \a �� (0x07)
+ \e ���򽤾� (0x1B)
+ \nnn Ȭ�ʿ�ɽ�� ��沽�Х�����(�ΰ���)
+ \xHH ��ϻ�ʿ�ɽ�� ��沽�Х�����(�ΰ���)
+ \x{7HHHHHHH} ��ĥ��ϻ�ʿ�ɽ�� �����ɥݥ������
+ \cx ����ʸ��ɽ�� �����ɥݥ������
+ \C-x ����ʸ��ɽ�� �����ɥݥ������
+ \M-x Ķ (x|0x80) �����ɥݥ������
+ \M-\C-x Ķ + ����ʸ��ɽ�� �����ɥݥ������
+
+ �� \b�ϡ�ʸ��������ǤΤ�ͭ��
+
+
+3. ʸ����
+
+ . Ǥ��ʸ�� (���Ԥ����)
+
+ \w ñ�칽��ʸ��
+
+ Unicode�ʳ��ξ��:
+ �ѿ���, "_" ����� ¿�Х���ʸ����
+
+ Unicode��:
+ General_Category -- (Letter|Mark|Number|Connector_Punctuation)
+
+ \W ��ñ�칽��ʸ��
+
+ \s ����ʸ��
+
+ Unicode�ʳ��ξ��:
+ \t, \n, \v, \f, \r, \x20
+
+ Unicode��:
+ 0009, 000A, 000B, 000C, 000D, 0085(NEL),
+ General_Category -- Line_Separator
+ -- Paragraph_Separator
+ -- Space_Separator
+
+ \S �����ʸ��
+
+ \d 10�ʿ���
+
+ Unicode��: General_Category -- Decimal_Number
+
+ \D ��10�ʿ���
+
+ \h 16�ʿ��� [0-9a-fA-F]
+
+ \H ��16�ʿ���
+
+
+ Character Property
+
+ * \p{property-name}
+ * \p{^property-name} (negative)
+ * \P{property-name} (negative)
+
+ property-name:
+
+ + ���ƤΥ��󥳡��ǥ��󥰤�ͭ��
+ Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower,
+ Print, Punct, Space, Upper, XDigit, Word, ASCII,
+
+ + EUC-JP, Shift_JIS��ͭ��
+ Hiragana, Katakana
+
+ + UTF8, UTF16, UTF32��ͭ��
+ Any, Assigned, C, Cc, Cf, Cn, Co, Cs, L, Ll, Lm, Lo, Lt, Lu,
+ M, Mc, Me, Mn, N, Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps,
+ S, Sc, Sk, Sm, So, Z, Zl, Zp, Zs,
+ Arabic, Armenian, Bengali, Bopomofo, Braille, Buginese,
+ Buhid, Canadian_Aboriginal, Cherokee, Common, Coptic,
+ Cypriot, Cyrillic, Deseret, Devanagari, Ethiopic, Georgian,
+ Glagolitic, Gothic, Greek, Gujarati, Gurmukhi, Han, Hangul,
+ Hanunoo, Hebrew, Hiragana, Inherited, Kannada, Katakana,
+ Kharoshthi, Khmer, Lao, Latin, Limbu, Linear_B, Malayalam,
+ Mongolian, Myanmar, New_Tai_Lue, Ogham, Old_Italic, Old_Persian,
+ Oriya, Osmanya, Runic, Shavian, Sinhala, Syloti_Nagri, Syriac,
+ Tagalog, Tagbanwa, Tai_Le, Tamil, Telugu, Thaana, Thai, Tibetan,
+ Tifinagh, Ugaritic, Yi
+
+
+
+4. �̻����
+
+ ��ĥ��
+
+ ? ���ޤ�������
+ * ����ʾ�
+ + ���ʾ�
+ {n,m} n��ʾ�m��ʲ�
+ {n,} n��ʾ�
+ {,n} ����ʾ�n��ʲ� ({0,n})
+ {n} n��
+
+ ̵��
+
+ ?? ���ޤ�������
+ *? ����ʾ�
+ +? ���ʾ�
+ {n,m}? n��ʾ�m��ʲ�
+ {n,}? n��ʾ�
+ {,n}? ����ʾ�n��ʲ� (== {0,n}?)
+
+ ���� (��ĥ��ǡ������֤�������������ϲ���򸺤餹�褦�ʸ���ƻ�Ԥ򤷤ʤ�)
+
+ ?+ ���ޤ�������
+ *+ ����ʾ�
+ ++ ���ʾ�
+
+ ({n,m}+, {n,}+, {n}+ �ϡ�ONIG_SYNTAX_JAVA�ǤΤ߶��ߤʻ����)
+
+ ��. /a*+/ === /(?>a*)/
+
+
+5. ��
+
+ ^ ��Ƭ
+ $ ����
+ \b ñ�춭��
+ \B ��ñ�춭��
+ \A ʸ������Ƭ
+ \Z ʸ�����������ޤ���ʸ���������β��Ԥ�ľ��
+ \z ʸ��������
+ \G �ȹ糫�ϰ���
+
+
+6. ʸ������
+
+ ^... ���� (����ͥ���ٱ黻��)
+ x-y �ϰ� (x����y�ޤ�)
+ [...] ���� (ʸ��������ʸ������)
+ ..&&.. �ѱ黻 (^�μ���ͥ���٤��㤤�黻��)
+
+ ��. [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w]
+
+ �� '[', '-', ']'��ʸ����������̾�ʸ���ΰ�̣�ǻ��Ѥ��������ˤϡ�
+ ������ʸ����'\'�����򽤾����ʤ���Фʤ�ʤ���
+
+
+ POSIX�֥饱�å� ([:xxxxx:], ���� [:^xxxxx:])
+
+ Unicode�ʳ��ξ��:
+
+ alnum �ѿ���
+ alpha �ѻ�
+ ascii 0 - 127
+ blank \t, \x20
+ cntrl
+ digit 0-9
+ graph ¿�Х���ʸ��������ޤ�
+ lower
+ print ¿�Х���ʸ��������ޤ�
+ punct
+ space \t, \n, \v, \f, \r, \x20
+ upper
+ xdigit 0-9, a-f, A-F
+ word �ѿ���, "_" ����� ¿�Х���ʸ��
+
+ Unicode��:
+
+ alnum Letter | Mark | Decimal_Number
+ alpha Letter | Mark
+ ascii 0000 - 007F
+ blank Space_Separator | 0009
+ cntrl Control | Format | Unassigned | Private_Use | Surrogate
+ digit Decimal_Number
+ graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate
+ lower Lowercase_Letter
+ print [[:graph:]] | [[:space:]]
+ punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation |
+ Final_Punctuation | Initial_Punctuation | Other_Punctuation |
+ Open_Punctuation
+ space Space_Separator | Line_Separator | Paragraph_Separator |
+ 0009 | 000A | 000B | 000C | 000D | 0085
+ upper Uppercase_Letter
+ xdigit 0030 - 0039 | 0041 - 0046 | 0061 - 0066
+ (0-9, a-f, A-F)
+ word Letter | Mark | Decimal_Number | Connector_Punctuation
+
+
+
+7. ��ĥ������
+
+ (?#...) ����
+ (?imx-imx) ��Ω���ץ����
+ i: ��ʸ����ʸ���ȹ�
+ m: ʣ����
+ x: ��ĥ����
+ (?imx-imx:��) �����ץ����
+
+ (��) ��ͼ�����
+ (?:��) ����ͼ�����
+
+ (?=��) ���ɤ�
+ (?!��) �������ɤ�
+ (?<=��) ����ɤ�
+ (?<!��) ��������ɤ�
+
+ ����ɤߤμ��ϸ���ʸ��Ĺ�Ǥʤ���Фʤ�ʤ���
+ ���������Ǿ�̤�����Ҥ����ϰۤʤä�ʸ��Ĺ��������롣
+ ��. (?<=a|bc) �ϵ���. (?<=aaa(?:b|cd)) ���Ե���
+
+ ��������ɤߤǤϡ���ͼ�����ϵ�����ʤ�����
+ ����ͼ�����ϵ�����롣
+
+ (?>��) ����Ū������
+ �����Τ��̲ᤷ���Ȥ���������Ǥθ���ƻ�Ԥ�Ԥʤ�ʤ�
+
+ (?<name>��), (?'name'��)
+ ̾���դ���ͼ�����
+ �������̾���������Ƥ�(�������)��
+ (̾����ñ�칽��ʸ���Ǥʤ���Фʤ�ʤ���)
+
+ ̾�������Ǥʤ�����ͼ������Ʊ�ͤ��ֹ�������Ƥ��롣
+ �ֹ���꤬�ػߤ���Ƥ��ʤ����� (10. ��ͼ����� �򻲾�)
+ �ΤȤ��ϡ�̾����Ȥ�ʤ����ֹ�Ǥ⻲�ȤǤ��롣
+
+ ʣ���μ������Ʊ��̾����Ϳ���뤳�Ȥϵ�����Ƥ��롣
+ ���ξ��ˤϡ�����̾������Ѥ����������Ȥϲ�ǽ�Ǥ��뤬��
+ ��ʬ���ƽФ��ϤǤ��ʤ���
+
+
+8. ��������
+
+ \n �ֹ���껲�� (n >= 1)
+ \k<n> �ֹ���껲�� (n >= 1)
+ \k'n' �ֹ���껲�� (n >= 1)
+ \k<-n> �����ֹ���껲�� (n >= 1)
+ \k'-n' �����ֹ���껲�� (n >= 1)
+ \k<name> ̾�����껲��
+ \k'name' ̾�����껲��
+
+ ̾�����껲�Ȥǡ�����̾����ʣ���μ������¿���������Ƥ�����ˤϡ�
+ �ֹ���礭�������礫��ͥ��Ū�˻��Ȥ���롣
+ (�ޥå����ʤ��Ȥ��ˤ��ֹ�ξ����������礬���Ȥ����)
+
+ �� �ֹ���껲�Ȥϡ�̾���դ���ͼ����礬������졢
+ ���� ONIG_OPTION_CAPTURE_GROUP�����ꤵ��Ƥ��ʤ����ˤϡ�
+ �ػߤ���롣(10. ��ͼ����� �򻲾�)
+
+
+ �ͥ��ȥ�٥��դ���������
+
+ level: 0, 1, 2, ...
+
+ \k<n+level> (n >= 1)
+ \k<n-level> (n >= 1)
+ \k'n+level' (n >= 1)
+ \k'n-level' (n >= 1)
+
+ \k<name+level>
+ \k<name-level>
+ \k'name+level'
+ \k'name-level'
+
+ �������Ȥΰ��֤�������Ū����ʬ���ƽФ��ͥ��ȥ�٥����ꤷ�ơ����Υ�٥�Ǥ�
+ ����ͤ򻲾Ȥ��롣
+
+ ��-1.
+
+ /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer")
+
+ ��-2.
+
+ r = Regexp.compile(<<'__REGEXP__'.strip, Regexp::EXTENDED)
+ (?<element> \g<stag> \g<content>* \g<etag> ){0}
+ (?<stag> < \g<name> \s* > ){0}
+ (?<name> [a-zA-Z_:]+ ){0}
+ (?<content> [^<&]+ (\g<element> | [^<&]+)* ){0}
+ (?<etag> </ \k<name+1> >){0}
+ \g<element>
+ __REGEXP__
+
+ p r.match('<foo>f<bar>bbb</bar>f</foo>').captures
+
+
+
+9. ��ʬ���ƽФ� ("����ů���ڥ����")
+
+ \g<name> ̾������ƽФ�
+ \g'name' ̾������ƽФ�
+ \g<n> �ֹ����ƽФ� (n >= 1)
+ \g'n' �ֹ����ƽФ� (n >= 1)
+ \g<-n> �����ֹ����ƽФ� (n >= 1)
+ \g'-n' �����ֹ����ƽФ� (n >= 1)
+
+ �� �Ǻ����֤ǤκƵ��ƽФ��϶ػߤ���롣
+ ��. (?<name>a|\g<name>b) => error
+ (?<name>a|b\g<name>c) => OK
+
+ �� �ֹ����ƽФ��ϡ�̾���դ���ͼ����礬������졢
+ ���� ONIG_OPTION_CAPTURE_GROUP�����ꤵ��Ƥ��ʤ����ˤϡ�
+ �ػߤ���롣 (10. ��ͼ����� �򻲾�)
+
+ �� �ƤӽФ��줿������Υ��ץ������֤��ƽФ�¦�Υ��ץ������֤ȰۤʤäƤ���
+ �Ȥ����ƤӽФ��줿¦�Υ��ץ������֤�ͭ���Ǥ��롣
+
+ ��. (?-i:\g<name>)(?i:(?<name>a)){0} �� "A" �˾ȹ��������롣
+
+
+10. ��ͼ�����
+
+ ��ͼ�����(...)�ϡ��ʲ��ξ��˱����ƿ����Ѳ����롣
+ (̾���դ���ͼ�������Ѳ����ʤ�)
+
+ case 1. /.../ (̾���դ���ͼ�������Ի��ѡ����ץ����ʤ�)
+
+ (...) �ϡ���ͼ�����Ȥ��ư����롣
+
+ case 2. /.../g (̾���դ���ͼ�������Ի��ѡ����ץ���� 'g'�����)
+
+ (...) �ϡ�����ͼ�����Ȥ��ư����롣
+
+ case 3. /..(?<name>..)../ (̾���դ���ͼ�����ϻ��ѡ����ץ����ʤ�)
+
+ (...) �ϡ�����ͼ�����Ȥ��ư����롣
+ �ֹ���껲��/�ƤӽФ����Ե��ġ�
+
+ case 4. /..(?<name>..)../G (̾���դ���ͼ�����ϻ��ѡ����ץ���� 'G'�����)
+
+ (...) �ϡ���ͼ�����Ȥ��ư����롣
+ �ֹ���껲��/�ƤӽФ��ϵ��ġ�
+
+ �
+ g: ONIG_OPTION_DONT_CAPTURE_GROUP
+ G: ONIG_OPTION_CAPTURE_GROUP
+ ('g'��'G'���ץ����ϡ�ruby-dev ML�ǵ������줿��)
+
+ �����ο���ΰ�̣�ϡ�
+ ̾���դ���ͤ�̾��̵����ͤ�Ʊ���˻��Ѥ���ɬ�����Τ�����̤Ͼ��ʤ��Ǥ�����
+ �Ȥ�����ͳ����ͤ���줿��ΤǤ��롣
+
+
+-----------------------------
+�䵭 1. ʸˡ��¸���ץ����
+
+ + ONIG_SYNTAX_RUBY
+ (?m): �����䵭��(.)�ϲ��ԤȾȹ�����
+
+ + ONIG_SYNTAX_PERL �� ONIG_SYNTAX_JAVA
+ (?s): �����䵭��(.)�ϲ��ԤȾȹ�����
+ (?m): ^ �ϲ��Ԥ�ľ��˾ȹ礹�롢$ �ϲ��Ԥ�ľ���˾ȹ礹��
+
+
+�䵭 2. �ȼ���ĥ��ǽ
+
+ + 16�ʿ���������16�ʿ��� \h, \H
+ + ̾���դ���ͼ����� (?<name>...), (?'name'...)
+ + ̾������������� \k<name>
+ + ��ʬ���ƽФ� \g<name>, \g<group-num>
+
+
+�䵭 3. Perl 5.8.0����Ӥ���¸�ߤ��ʤ���ǽ
+
+ + \N{name}
+ + \l,\u,\L,\U, \X, \C
+ + (?{code})
+ + (??{code})
+ + (?(condition)yes-pat|no-pat)
+
+ * \Q...\E
+ â��ONIG_SYNTAX_PERL��ONIG_SYNTAX_JAVA�Ǥ�ͭ��
+
+
+�䵭 4. Ruby 1.8 �����ܸ첽 GNU regex(version 0.12)�Ȥΰ㤤
+
+ + ʸ��Property��ǽ�ɲ� (\p{property}, \P{Property})
+ + 16�ʿ����������ɲ� (\h, \H)
+ + ����ɤߵ�ǽ���ɲ�
+ + ���ߤʷ����֤�����Ҥ��ɲ� (?+, *+, ++)
+ + ʸ���������α黻�Ҥ��ɲ� ([...], &&)
+ ('[' �ϡ�ʸ�����������̾��ʸ���Ȥ��ƻ��Ѥ���Ȥ��ˤ�
+ ���򽤾����ʤ���Фʤ�ʤ�)
+ + ̾���դ���ͼ�����ȡ���ʬ���ƽФ���ǽ�ɲ�
+ + ¿�Х���ʸ�������ɤ����ꤵ��Ƥ���Ȥ���
+ ʸ����������Ȭ�ʿ��ޤ��Ͻ�ϻ�ʿ�ɽ����Ϣ³�ϡ�¿�Х�������ɽ�����줿
+ ��Ĥ�ʸ���Ȳ�ᤵ���
+ (��. [\xa1\xa2], [\xa1\xa7-\xa4\xa1])
+ + ʸ���������ǡ���Х���ʸ����¿�Х���ʸ�����ϰϻ���ϵ�����롣
+ ex. /[a-��]/
+ + ��Ω���ץ�����ͭ���ϰϤϡ����θ�Ω���ץ�����ޤ�Ǥ��뼰�����
+ �����ޤǤǤ���
+ ��. (?:(?i)a|b) �� (?:(?i:a|b)) �Ȳ�ᤵ��롢(?:(?i:a)|b)�ǤϤʤ�
+ + ��Ω���ץ����Ϥ������μ����Ф���Ʃ��Ū�ǤϤʤ�
+ ��. /a(?i)*/ ��ʸˡ���顼�Ȥʤ�
+ + �Դ����ʷ����֤��ϰϻ���Ҥ��̾��ʸ����Ȥ��Ƶ��Ĥ����
+ ��. /{/, /({)/, /a{2,3/
+ + ����ŪPOSIX�֥饱�å� [:^xxxx:] ���ɲ�
+ + POSIX�֥饱�å� [:ascii:] ���ɲ�
+ + ���ɤߤη����֤����Ե���
+ ��. /(?=a)*/, /(?!b){5}/
+ + ���ͤǻ��ꤵ�줿ʸ�����Ф��Ƥ⡢��ʸ����ʸ���ȹ祪�ץ�����ͭ��
+ ��. /\x61/i =~ "A"
+ + �����֤��������ǡ��������ξ�ά(0��)���Ǥ���
+ /a{,n}/ == /a{0,n}/
+ �������Ⱥ�������Ʊ����ά�ϵ�����ʤ���(/a{,}/)
+ + /a{n}?/��̵�ߤʱ黻�ҤǤϤʤ���
+ /a{n}?/ == /(?:a{n})?/
+ + ̵���ʸ������Ȥ�����å����ƥ��顼�ˤ��롣
+ /\1/, /(a)\2/
+ + ̵�·����֤�����ǡ�Ĺ�����Ǥξȹ������Ϸ����֤������Ǥ����뤬��
+ ���ΤȤ������Ǥ��٤����ɤ�����Ƚ��Ȥ��ơ���ͼ��������;��֤�
+ �Ѳ��ޤǹ�θ���Ƥ���
+ /(?:()|())*\1\2/ =~ ""
+ /(?:\1a|())*/ =~ "a"
+
+
+
+�䵭 5. ��������Ƥ��뤬�������ͤǤ�ͭ���ˤ��Ƥ��ʤ���ǽ
+
+ + ������򻲾�
+
+ (?@...) �� (?@<name>...)
+
+ ��. /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>]
+
+ ������ˡ�ϡ�sample/listcap.c�򻲾�
+
+ ͭ���ˤ��Ƥ��ʤ���ͳ�ϡ��ɤ��������Ω�Ĥ��Ϥä��ꤷ�ʤ����ᡣ
+
+
+�䵭 6. ������
+
+ + ���󥳡��ǥ��󥰥Х����ͤ�Ŭ���ʲ����ɤ����Υ����å��ϹԤʤäƤ��ʤ���
+
+ ��: UTF-8
+
+ * ��Ƭ�Х��ȤȤ��������ʥХ��Ȥ��ʸ���Ȥߤʤ�
+ /./u =~ "\xa3"
+
+ * �Դ����ʥХ��ȥ������󥹤Υ����å��򤷤ʤ�
+ /\w+/u =~ "a\xf3\x8ec"
+
+ �����Ĵ�٤뤳�Ȥϲ�ǽ�ǤϤ��뤬���٤��ʤ�ΤǹԤʤ�ʤ���
+
+ ʸ����Ȥ��ơ����Τ褦�ʥХ��������ꤷ������ư����ݾڤ��ʤ���
+
+����