diff options
Diffstat (limited to 'doc/RE.ja')
-rw-r--r-- | doc/RE.ja | 460 |
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" + + �����Ĵ�٤뤳�Ȥϲ�ǽ�ǤϤ��뤬���٤��ʤ�ΤǹԤʤ�ʤ��� + + ʸ����Ȥ��ơ����Τ褦�ʥХ��������ꤷ������ư����ݾڤ��ʤ��� + +���� |