Skip to content

Latest commit

 

History

History
1368 lines (893 loc) · 36.9 KB

perlrequick.pod

File metadata and controls

1368 lines (893 loc) · 36.9 KB

NAME

perlrequick - Perl 罩h�頫◐憗�勉�壔�ゃ����壔�鴻�帥�若��

DESCRIPTION

�����勉����若�吾�壔��Perl ��勖③荀頫◐�� ('regexes') ��勛��茹c��篏�������篏睡����勐�堺�㋙賢�� ��堺�㋘��絲上�������⓾����障�����

The Guide

(��㋘�ゃ��)

Simple word matching

(���膣���ɱ��茯���勉����������潟��)

���������膣���ʋ③荀頫◐憗�壠����ŝ�����茯����������筝���㋜����˨�壩��絖���勌研��潟�с����� 罩h�頫◐憗�壠��茯����罕����������篁紙����勖��絖������˨����������潟�違��������茯���������ŝ����障��:

"Hello World" =~ /World/;  # matches

�����勖����с��World ��壩③荀頫◐憗�с�������� // ��у�蚊�障����� /World/ �� Perl ���絲障����⓾����������潟�違�勉�����������絖�������罎�膣≪�����������������腓冴����障����� =~ ���������羲�膊�絖���壩③荀頫◐憗�˨����������潟�違��������絖������̥����割�������������� 罩h�頫◐憗�������������潟�違�������亥����勐�ゃ�������������������������潟�違����ŝ�������医�純����ŝ����障����� �����勌����с�壔��World ��� "Hello World" ��勌����ɾ�勉�勐��茯���˨����������潟�違�������勉�с�� 綣���夌�������ŝ����障����� �����勤�������鴻�˨�壔�������ゃ����勉����ŝ����若�激�с�潟����������障�����

篁ヤ����勉�������ɱ����壩�>散�����т梢��í�с��:

print "It matches\n" if "Hello World" =~ /World/;

�����������潟�違�勖����⓾�勖����潟�����荵≪�����羲�膊�絖� !~ �����������障��:

print "It doesn't match\n" if "Hello World" !~ /World/;

罩h�頫◐憘賢��勉�ŝ����í�����絖������壠����違�̥舟��������������������������с����障��:

$greeting = "World";
print "It matches\n" if "Hello World" =~ /$greeting/;

$_ ���絲障����⓾����������潟�違��茵������翫�����$_ =~ ��勰�������夌����ャ�с����障��:

$_ = "Hello World";
print "It matches\n" if /World/;

���緇���˨�������������潟�違�勉�������� // ��勉�������í�˨�������ŝ����帥�� 'm' ��� ���臀勉�������������˨�����篁紙����勉����勉�˨����������������с����障��:

"Hello World" =~ m!World!;   # �����������潟�違�����; �����ŝ����帥�� '!'
"Hello World" =~ m{World};   # �����������潟�違�����; 腟���˨�ŝ�c�⓾����� '{}' ���羈���
"/usr/bin/perl" =~ m"/perl"; # 'usr/bin' ��勐����˨����������潟�違�����
                             # '/' ��壩�勰����勖��絖���˨�ŝ�c�⓾�����

罩h�頫◐憗�壔����������������ŝ����������˨�� 罩g∈��� ���綺�������������絖������ 筝������������⓾����������潟�違����ŝ�������違�ŝ����障��������

"Hello World" =~ /world/;  # �����������潟�違����ŝ��; 紊ф��絖�絨����絖���壠�阪�ャ�����
"Hello World" =~ /o W/;    # �����������潟�違�����; ' ' ��壩�勰����勖��絖�
"Hello World" =~ /World /; # �����������潟�違����ŝ��; ���絨障�� ' ' ��壔�ŝ��

Perl ��壠幻������絖������勌賢��ф�������̥憗����������勉�������������潟�違����������������障��:

"Hello World" =~ /o/;       # 'Hello' ��� 'o' ��˨����������潟�
"That hat is red" =~ /hat/; # 'That' ��勌賢��� 'hat' ��˨����������潟�

�����鴻�⓾�勖��絖���������������潟�違�˨��������'�����������障��'(as is) ��˩戎�����������勉�с� ��������障�������� ��<�炊��絖� �����若�違�����綛障�ゃ����勖��絖����罩h�頫◐憗�勤��菴違�˩戎����������� 篋�膣���������⓾����障����� ��<�炊��絖���˨�壚札筝���勉����勉����������障��

{}[]()^$.|*+?\

��<�炊��絖���壔�������壔�鴻�í����激�ャ�����臀勉�������������˨����c�⓾����������潟�違�������������障��:

"2+2=4" =~ /2+2/;    # �����������潟�違����ŝ��; + ��壔�<�炊��絖�
"2+2=4" =~ /2\+2/;   # �����������潟�違�����; \+ ��勰����� + ��勉����������宴��������
'C:\WIN32' =~ /C:\\WIN/;                       # �����������潟�違�����
"/usr/bin/perl" =~ /\/usr\/bin\/perl/;  # �����������潟�違�����

���緇���勖③荀頫◐憗�с�壔����鴻�í����激�� '/' �����障����������壔�鴻�í����激�ャ�� ��ゃ����������⓾����障��; ��ŝ����ŝ��������������罩h�頫◐憗�勉����ŝ����帥�������☖戎��������⓾�������������с�����

��医����с����ŝ�� ASCII ���絖���� �����鴻�宴�若����激�若�宴�潟�� ��˨����c�☀;�憗�������障����� 筝���㋜����ŭ����с�壔����帥�����茵���� \t�����壕�����茵���� \n���緇ï鍵���茵���� \r ��� ��������障����� 篁紙����勉����ゃ����� 8 ��蚊����鴻�宴�若����激�若�宴�潟�� (箴������� \033) ����������� 16 ��蚊����鴻�宴�若����激�若�宴�潟�� (箴������� \x1B) ��ц;�憗�с����障��:

"1000\t2000" =~ m(0\t2)  # �����������潟�違�����
"cat" =~ /\143\x61\x74/  # ASCII ��с����������潟�違�����������
                         # cat ���膓眼��紊���ʋ�号��

罩h�頫◐憗�壔�祉�������í�勐�翫����˨�������⓾�������˨�壔�í�若����у�蚊�障��������絖������勉������� ��宴����������勉�с��紊���亥舟�����壠��篏������障��:

$foo = 'house';
'cathouse' =~ /cat$foo/;   # �����������潟�違�����
'housecat' =~ /${foo}cat/; # �����������潟�違�����

��������障�с�勖③荀頫◐憗�с�壔�����絖������勉�í�������с����������潟�違�������違����������潟�違������� ��帥�ŝ����⓾����障�������� ���絖������� ��í����� 罩h�頫◐憗�������������潟�違�������勉��������絎���������˨�壔�� ��≪�潟�˨�� ��<�炊��絖���с����� ^ ��� $ ���篏帥����障����� ��≪�潟�˨�� ^ ��壩��絖������勐����㏍�с����������潟�違�������������������潟�������≪�潟�˨�� $ �� ���絖������勖��絨�(�����������壩��絖������勖��絨障�˨�������壕����勐��) ��с����������潟�違�������������� �����潟����障����� ��������ゃ��箴������������障��:

"housekeeper" =~ /keeper/;         # �����������潟�違�����
"housekeeper" =~ /^keeper/;        # �����������潟�違����ŝ��
"housekeeper" =~ /keeper$/;        # �����������潟�違�����
"housekeeper\n" =~ /keeper$/;      # �����������潟�違�����
"housekeeper" =~ /^housekeeper$/;  # �����������潟�違�����

Using character classes

(���絖���壔�í�鴻��篏帥��)

���絖���壔�í�� ��壩③荀頫◐憗�勛�劫����勐�贋����˨�������⓾����������潟�違������櫝�醇�с�勉��������絖��� ��������с��(���筝���勖��絖���с�壔�������障�����)��� ���絖���壔�í�鴻�壔����í�宴����� [...] ��ц;�憗�������������������潟�違������櫝�醇�с�勉��������絖��� ��������壔����勐����眼�̥舟��������障����� 篁ヤ����壔����勌����с��:

/cat/;            # 'cat' ��˨����������潟�違�����
/[bcr]at/;        # 'bat', 'cat', 'rat' ��勉�������������˨����������潟�違�����
"abc" =~ /[cab]/; # 'a' ��˨����������潟�違�����

���緇���勖����˨�������⓾��'c' �����壔�í�鴻�勖�������勖��絖���с�������˨����������������� 罩h�頫◐憗�������������潟�違�������������勉�с�������������勌��臀勉�˨��������絖���с����� 'a' ��� �����������潟�違����障�����

/[yY][eE][sS]/; # 紊ф��絖�絨����絖������∴�������� 'yes' ��˨����������潟�違�����
                # 'yes', 'Yes', 'YES' ��ŝ�í��
/yes/i;         # ���������紊ф��絖�絨����絖������∴�������� 'yes' ��˨����������潟�違�����

���緇���勌����壠ぇ���絖�絨����絖������∴�������⓾����������潟�違�������������˨����� 'i' 篆勰﹅絖� (modifier) ���篏帥�c�������������潟�違��腓冴����⓾����障�����

���絖���壔�í�鴻����勰����勖��絖���◐�号�����絖������������障�����������絖���壔�í�鴻�勐����眼�с� ��勰����勖��絖���◐�号�����絖���壔�����絖���壔�í�鴻�勐����眼�勛�í����奝�������障����� ���絖���壔�í�鴻�勉�������̥�号����ʋ��絖���� -]\^$ ��с�������鴻�宴�若�����篏帥�c� �����������潟�違�������障��:

/[\]c]def/; # ']def' ��障����� 'cdef' ��˨����������潟�
$x = 'bcr';
/[$x]at/;   # 'bat', 'cat', 'rat' ��˨����������潟�
/[\$x]at/;  # '$at' ��障����� 'xat' ��˨����������潟�
/[\\$x]at/; # '\at', 'bat, 'cat', 'rat' ��˨����������潟�

��号�����絖� '-' ��壩��絖���壔�í�鴻�勌賢��х����我��膊�絖���������〠�虁�������勉�с�� [0123456789] ��� [abc...xyz] ��勉������� 荀���ャ����������勉�壔����c�������������� [0-9] ��с����������� [a-z] ��勉������� ��吾����������������障��:

/item[0-9]/;  # 'item0' ... 'item9' ��˨����������潟�違�����
/[0-9a-fA-F]/;  # 16 ��我�違�˨����������潟�違�����

'-' ������絖���壔�í�鴻�勌賢��勖�����������緇���勖��絖���с����c����翫��������絽吾�勖��絖��������� ��宴�������障�����

���絖���壔�í�鴻�勐����㏍�勌��臀勉�˨�������号�����絖� ^ ��� ���荵∽��絖���壔�í�� ���茵������� �����í�宴�������勌賢��˨�ŝ�����絖���˨����������潟�違����障����� [...] ��� [^...] ��勌検��鴻��������筝���ゃ�勖��絖���˨����������潟�違����㏍�違�ŝ�������� ��������с�ŝ����翫����˨�壔����������潟�違�壠け��������障����� ��с��������

/[^a]at/;  # 'aat' ��� 'at' ��˨�壔����������潟�違����ŝ�������������勌����
           # 'bat', 'cat, '0at', '%at' ��ŝ�í�˨�壔����������潟�違�����
/[^0-9]/;  # ��医��篁ュ����˨����������潟�違�����
/[a^]at/;  # 'aat' ��� '^at'��˨����������潟�違�����; ��������с�� '^' ��奝��絽吾�勖��絖�

Perl ��壚����㋜����ʋ��絖���壔�í�鴻�勛�ヨ��羈���������c�⓾����障����� (�����������勐��臂í�� Perl ��� /a 篆勰﹅絖���˨����c�� ASCII 絎������≪�若����� 篏帥�c�⓾�������������勉����勉�с����� ��������ŝ�������違����c��紊������勰�� ASCII ��� Unicode ���絖��� �����������潟�違�������������������障�������� 荅潟�������� "Backslash sequences" in perlrecharclass ��������с����⓾��������������)

  • \d ��壩�医����с��篁ヤ����勉����勉��茵������障��

    [0-9]
  • \s ��夌Ã��醇��絖���с��篁ヤ����勉����勉��茵������障��

    [\ \t\r\n\f]
  • \w ��壠��茯����罕�������������絖�(��掩�医�� ��� _)��с��篁ヤ����勉����勉��茵������障��

    [0-9a-zA-Z_]
  • \D ��� \d ��勐�☗��綵≪�с��; ��医��篁ュ����勖��絖����茵������障��

    [^0-9]
  • \S ��� \s ��勐�☗��綵≪�с��; ���腥榊�醇��絖����茵������障��

    [^\s]
  • \W ��� \w ��勐�☗��綵≪�с��; ���茯����罕���������ŝ�����絖����茵������障��

    [^\w]
  • �����ŝ�ŝ�� '.' ��� "\n" 篁ュ����勌算�����勖��絖���˨����������潟�違����障��

\d\s\w\D\S\W ��勛����ヨ��羈���壩��絖���壔�í�鴻�勐����眼�с��紊���眼�с��篏帥�������������с����障����� 篁ヤ����壔����勌����с��:

/\d\d:\d\d:\d\d/; # hh:mm:ss 綵√����勖�����茵◑����˨����������潟�
/[\d\s]/;         # ��医����障����夌Ã��純�˨����������潟�
/\w\W\w/;         # ������茯����絖����膓����������������茯����絖����膓���
                  # ���茯����絖���˨����������潟�
/..rt/;           # 'rt' ���膓���鋌紙����勌�����絖���˨����������潟�
/end\./;          # 'end.' ��˨����������潟�
/end[.]/;         # ������������; 'end.' ��˨����������潟�

茯���≪�潟�˨�� (word anchor) \b ��壔�������壠��茯����罕�������������絖�������茯���� 罕���������ŝ�����絖���勰�� \w\W ��� \W\w ��勐�������˨����������潟�違����障��:

$x = "Housecat catenates house and cat";
$x =~ /cat/;    # 'housecat' ��� cat ��˨����������潟�
$x =~ /\bcat/;  # 'catenates' ��� cat ��˨����������潟�
$x =~ /cat\b/;  # 'housecat' ��� cat ��˨����������潟�
$x =~ /\bcat\b/;  # ���絖������勛��腴壔��'cat'��˨����������潟�

���緇���勌����с�壔�����絖������勛��腴壔�壠��茯�紜������������☀��茘���������⓾����障�����

"don't" =~ / .+? \b{wb} /x;  # matches the whole string

Matching this or that

(��������������������˨����������潟�違�����)

��違�ŝ�����絖������� ��御�� ��<�炊��絖� '|' ��˨����c�☀�������障����� dog ��障����� cat ��˨����������潟�違����������˨�壔��罩h�頫◐憗�� dog|cat ��勉�������˨����障����� 篁ュ��菴違�鴻�����������Perl��壩��絖������勐櫝�純�ʒ�������������í��篏�臀勉�с����������潟�違�� 茵���������������障����� ��������������勖��絖�篏�臀勉�с��Perl��壔�障����壔����������������勰�御����с����� dog �� �����������潟�違�����������������荅⓾�帥�障����� ������ dog ��������������潟�違����ŝ�������違��Perl ��壩❶��勰�御����≪�с����� cat ��� 荅⓾����障����� cat �����障�������������潟�違����ŝ�������違�������������潟�違�壠け���������Perl��壩��絖������ 罨<�勌��臀勉�̥Щ��������障����� 綛障�ゃ��箴������������障��������:

"cats and dogs" =~ /cat|dog|bird/;  # "cat" ��˨����������潟�
"cats and dogs" =~ /dog|cat|bird/;  # "cat" ��˨����������潟�

篋���ɾ�勉�勖③荀頫◐憗�˨�������〠�������勰�御����≪�� dog ��с�������˨�������������������� cat ������絖������ф�������̥憗����������������潟�医嚳莟<�с�����

"cats"          =~ /c|ca|cat|cats/; # "c" ��˨����������潟�
"cats"          =~ /cats|cat|ca|c/; # "cats" ��˨����������潟�

筝����������������絖�篏�臀勉�с��罩h�頫◐憗�勉����������潟�違������������������������� ��������勰�御����≪�壔����������潟�違�����筝���ゃ����ŝ����障����� ��������с�壔�������⓾�勰�御����壔�壩�������勖��絖����篏�臀勉�с����������潟�違�������勉�с�� ��������勉����勉�������������潟�違����障�����

Grouping things and hierarchical matching

(��違�˨�若�������◒��絮ょ�������������潟��)

��違�˨�若����� ��<�炊��絖� () ��壩③荀頫◐憗�勌�����������筝���ゃ�勉�⓾���������������� ��宴�����������荐宴����障����� ������罩h�頫◐憗�勌�������壔�˨����潟�˨����c�☗�蚊�障�������������с�違�˨�若�������������障����� 罩h�頫◐�� house(cat|keeper) ��壔��cat ��� keeper ���緇�膓������� house ��˨����������潟�違�������������������潟����障����� 綛障�ゃ��箴������������障��������

/(a|b)b/;    # 'ab' ��障����� 'bb' ��˨����������潟�
/(^a|b)c/;   # ���絖������勐����㏍�˨����� 'ac' ���篁紙����勐�贋�����'bc'��˨����������潟�
/house(cat|)/;  # 'housecat' ��� 'house' ��˨����������潟�
/house(cat(s|)|)/;  # 'housecats' ��� 'housecat' ��� 'house' ��勉�������������
                    # �����������潟�違����違�˨�若����������鴻����с��������������羈���
"20" =~ /(19|20|)\d\d/;  # 腥冴�勰�御����� '()\d\d' ��˨����������潟�
                         # '20\d\d' ��壔����������潟�違�с����ŝ��������

Extracting matches

(�����������潟�違����������勉����������冴��)

��違�˨�若�������<�炊��絖� () ��壔�障����������������潟�違��������絖������勌����������� 絮���������������������с����障����� ��������������勉�違�˨�若��������絲障����⓾�������������潟�違����������������号��紊���� $1, $2 ��ŝ�í����主����������障����� �����������勐����違�奝��絽吾�勐����違����������������˩戎��������������с����障��:

# ������������腱������遵�冴�����
$time =~ /(\d\d):(\d\d):(\d\d)/;  # hh:mm:ss 綵√����˨����������潟�違�����
$hours = $1;
$minutes = $2;
$seconds = $3;

��ŝ�鴻����潟�潟����㏍�鴻����с�壔����違�˨�若�����篁������勉����������潟�� /regex/ �� �����������潟�違�������ゃ�勉�ŝ�鴻�� ($1,$2,...) ���菴������障����� 緇���c�⓾�������壚札筝���勉����������吾����������������障��

($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);

罩h�頫◐憘賢��勉�違�˨�若�������������鴻�������⓾�������翫�����$1 ��壩�����綏⓾�˨����� �����������c����˨����c�⓾�違�˨�若�������������⓾����������勉�����������$2 �� 罨<�勰����������c����˨����������勉����������⓾����ŝ�c�⓾�������障����� 箴������違��篁ヤ����虁�������ʋ③荀頫◐憗�����緇�菴違����������������潟�医����違�с��:

/(ab(cd|ef)((gi)|j))/;
 1  2      34

�����������潟�医����� $1, $2 ��⓾��絲��・��̥����割�������������������勉�壔�� 緇���劫����� (backreferences) \g1, \g2 ��⓾�с����� 緇���劫����с�壩③荀頫◐憗�� ������ ��т戎�����������勉�с����������������潟�医����違�с��:

/(\w\w\w)\s\g1/; # ���絖����筝㏍�� 'the the' ��勉�������ŭ研��潟���「���

$1, $2 ��⓾�壩③荀頫◐憗�勐����眼�勉�帥�х�������� 緇���劫����� \g1, \g2 ��⓾�壩③荀頫◐憗�勐����眼�с�勉�推戎�����������˨����鴻����с�����

Matching repetitions

(�����������潟�違�勛弘���菴����)

������絎�絖� (quantifier) ?, *, +, {} ��˨����c�⓾�� �����������潟�違�������������◑�������⓾�����罩h�頫◐憗�勌����������勛弘���菴���������違�� ���絎���с����障����� ������絎�絖���夌弘���菴����������絎�������������絖�������絖���壔�í�鴻����障����壔�違�˨�若����勛�翫���� 臀勉����障����� ������絎�絖���˨�壚札筝���勉�������ʋ����潟����������障��:

  • a? ���: 'a' ��障����夌Ã���絖������˨����������潟�違����障�����

  • a* ���: 'a' ��勉�若�㊤��篁ヤ����勛弘���菴������˨����������潟�違����障�����

  • a+ ���: 'a' ��勌�����篁ヤ����勛弘���菴������˨����������潟�違����障�����

  • a{n,m} ���: n ���篁ヤ�� m ���篁ヤ����勛弘���菴������˨����������潟�違����障�����

  • a{n,} ���: n ���篁ヤ����勛弘���菴������˨����������潟�違����障�����

  • a{n} ���: n �����勛弘���菴������˨����������潟�違����障�����

篁ヤ�����綛障�ゃ��箴������������障��:

/[a-z]+\s+\d*/;  # 絨����絖���勐��茯����綛障�ゃ����勛Ã��純����������̥����鋌紙����勰�激����
                 # ��医����˨����������潟�
/(\w+)\s+\1/;     # 篁紙����勰�激����勐��茯���勰��茲���˨����������潟�
$year =~ /\d{2,4}/;  # 綛眼��絨���ŝ�������� 2 罅�������������紊с�с�� 4 罅���
                     # ��ŝ����������˨�����
$year =~ /^\d{4}$|^\d{2}$/; # �����c�◑�壔��; 3罅������壔����

�����������勰�����絎�絖���壔�壩③荀頫◐憗�勉����������潟�違����������������勉��荐宴��膀���蚊� �櫝�純�ʒ�������勖��絖������������������潟�違�������������������障����� 緇���c�⓾��篁ヤ����勉�������˨�ŝ����障��

$x = 'the cat in the hat';
$x =~ /^(.*)(at)(.*)$/; # �����������潟�違�����
                        # $1 = 'the cat in the h'
                        # $2 = 'at'
                        # $3 = ''   (0 ��������������潟��)

��������勰�����絎�絖� .* ��壩③荀頫◐憗�������������潟�違�����膀���蚊�у櫝�純�ʒ������� ��激�����絖���������ゃ����帥�������障����� 2 ��ɾ�勉�勰�����絎�絖���� .* ��˨�壩��絖�������罧���������⓾����ŝ����勉�с��0 ��� �����������潟�違����障�����

More matching

�����������潟�井��膊�絖���˨�ゃ����☎�ャ����������������������ŝ�������������������������ゃ����������障����� ��違�㏍�若����˩信蕋上�� //g ��壚����ゃ�勖��絖���������堺�ャ��������篏������������������潟�違�������������� 荐宴����障����� ��鴻�˨�í�潟�潟����㏍�鴻����с�壔�����絖�������絲障����������������潟�違�勖�������˨����c� //g ��壔����������潟�違����������������潟�違�˨�吾�c�潟�����������絖������勌��臀勉��荐���蚊��膓������ ��������障����� pos() ��∽�違��篏帥�c�☖��臀勉�����緇���障����虁┃絎���с����障����� 箴�������:

$x = "cat dog house"; # 3 words
while ($x =~ /(\w+)/g) {
    print "Word is $1, ends at position ", pos $x, "\n";
}

��壚札筝����茵◐ず�����障��

Word is cat, ends at position 3
Word is dog, ends at position 7
Word is house, ends at position 13

�����������潟�違��紊掩����������������帥�若�蚊��������絖�������紊���眼�������������勌��臀勉� ��ŝ�祉�������������障����� �����������������潟�違��紊掩����������������˩��臀勉����ŝ�祉����������������ŝ����勉�с�������違�� /regexp/gc ��勉�������� //c ���菴遵�������障�����

��ŝ�鴻����潟�潟����㏍�鴻����с�壔��//g ��壔����������潟�違�������違�˨�若����勉�ŝ�鴻�����菴������障��; ��違�˨�若�������勖��絎������ŝ�������違��罩h�頫◐憜��篏���˨����������潟�違�������ŝ�鴻�����菴������障����� 緇���c�

@words = ($x =~ /(\w+)/g);  # �����������潟�違�����
                            # $word[0] = 'cat'
                            # $word[1] = 'dog'
                            # $word[2] = 'house'

Search and replace

(罎�膣≪�◐舟���)

罎�膣≪�◐舟������ s/regexp/replacement/modifiers ���篏帥�c�☗�☎����������障����� replacement ��� Perl��с�勉�������˨�壔�í�若����у�蚊�障��������絖������с�� regexp ��˨����������潟�違��������絖�������臀勉����������������勉�с����� =~ 羲�膊�絖������障�� s/// ���篌眼�c�����絖������̥����潟�ゃ������������������� 篏帥�������障����� $_ ���絲障����⓾����������潟�違��茵������翫����˨�壔��$_ =~ ��夌����ャ�с����障����� �����������潟�違����������������翫����˨�� s/// ��夌舟������茵������������違��菴������障��; 紊掩����������翫����˨�壠�純��菴������障����� 綛障�ゃ��箴������������障��������:

$x = "Time to feed the cat!";
$x =~ s/cat/hacker/;   # $x ��勐��絎鴻�� "Time to feed the hacker!"
$y = "'quoted words'";
$y =~ s/^'(.*)'$/$1/;  # ��激�潟�違�˨�壔�í�若�������ャ��������
                       # $y ��勐��絎鴻�� "quoted words"

s/// 羲�膊�絖����篏帥����˨�������c�⓾��$1, $2 ��������c�������������潟�医����違� �����勛舟���綣���勉�ŝ����у�喝婚��˩戎��������������с����障����� ��違�㏍�若����˩信蕋上�� s///g ���篏帥����������с�����絖����筝㏍�勉����鴻�⓾�勖③荀頫◐憗� �����������潟�違�����罎�膣≪�◐舟������茵������障��:

$x = "I batted 4 for 4";
$x =~ s/4/four/;   # $x ��勐��絎鴻�� "I batted four for 4"
$x = "I batted 4 for 4";
$x =~ s/4/four/g;  # $x ��勐��絎鴻�� "I batted four for four"

�����翫��篆勰﹅絖� s///r ��� $_ (��障����� =~ ��˨����c�☎舟��������������������˨�ŝ�� 紊����) ���紊���眼�����篁c�������˨��臀勖����勛��������菴������障��:

$x = "I like dogs.";
$y = $x =~ s/dogs/cats/r;
print "$x $y\n"; # prints "I like dogs. I like cats."

$x = "Cats are great.";
print $x =~ s/Cats/Dogs/r =~ s/Dogs/Frogs/r =~
    s/Frogs/Hedgehogs/r, "\n";
# prints "Hedgehogs are great."

@foo = map { s/[a-z]/X/r } qw(a b c 1 2 3);
# @foo is now qw(X X X 1 2 3)

荅�箴>信蕋上�� s///e ��夌舟������絖������� eval{...} ��с�í����������������勤��箴∞�������� �����������潟�違��������������絖������勛舟�����勉�������˩戎�����障����� ��������ゃ��箴������������障��:

# ���絖����筝㏍�勐����⓾�勐��茯������������˨�����
$x = "the cat in the hat";
$x =~ s/(\w+)/reverse $1/ge;   # $x ��� "eht tac ni eht tah"
# ��上�������� 10 ��我�違�̥舟������������
$x = "A 39% hit rate";
$x =~ s!(\d+)%!$1/100!e;       # $x ��� "A 0.39 hit rate"

���緇���勌����勉�������˨��s/// ��� s!!! ��� s{}{} ��� �����⓾�� s{}// ��勉�������̥�違�ŝ�������ŝ����帥��篏帥�������������с����障����� s''' ��勉�������˨�激�潟�違�˨�壔�í�若�����篏帥����������翫����������勖③荀頫◐憗� 臀勖�������㏍�鴻����壔�激�潟�違�˨�壔�í�若�����絖������勉����������宴��������紊���違�勛舟����������� 茵���������障��������

The split operator

(split 羲�膊�絖�)

split /regex/, string, limit ��� string ��ŝ����í�潟��������������絖������ ��ŝ�鴻����������蚊����������勉�ŝ�鴻�����菴������障����� regex ��壔��string ��������蚊�������������˩戎������������絖�筝⓾�潟��羆阪�������障����� �����������違�����絖����������茯���������蚊�������˨�壚札筝���勉�������˨����障��

$x = "Calvin and Hobbes";
@word = split /\s+/, $x;  # $word[0] = 'Calvin'
                          # $word[1] = 'and'
                          # $word[2] = 'Hobbes'

��˨�潟����阪�������勖�医�ゃ�ŝ�鴻�����絮������������˨�壔��篁ヤ����勉�������˨����障��

$x = "1.618,2.718,   3.142";
@const = split /,\s*/, $x;  # $const[0] = '1.618'
                            # $const[1] = '2.718'
                            # $const[2] = '3.142'

// ���篏帥����������翫����˨�壔�����絖������壠�������勖��絖���������蚊�������障����� 罩h�頫◐憗����違�˨�若��������篌眼�c�⓾�������翫����˨�壔����違�˨�若�������������������勉�����������絖������ ��˨�障�������������˨�ŝ����障��:

$x = "/usr/bin";
@parts = split m!(/)!, $x;  # $parts[0] = ''
                            # $parts[1] = '/'
                            # $parts[2] = 'usr'
                            # $parts[3] = '/'
                            # $parts[4] = 'bin'

$x ��勖�������勖��絖����罩h�頫◐憗�������������潟�違����⓾�������勉�с��split ��壔�ŝ�鴻���� ��������勤��膣���̥Ã荀�膣����臀勉����障�����

use re 'strict'

��������� v5.22 ��������勖�井����純�с��罩h�頫◐憗����帥�若�潟����潟�潟����ゃ�˨�������������˩����������� �������ウ絲���ʃ����������ñ�������障����� ��������˨�������������鴻�с�壔�������������í����������潟����⓾����������勉�◒�������������ャ����ŝ�������勉�� 荀���ゃ����������������с����障�����

'strict' in re ��������с����⓾��������������

BUGS

��ŝ�����

SEE ALSO

��������壠����ŝ����壔�ゃ����壔�鴻�帥�若����㋘�ゃ����с����� 罩h�頫◐憗�̹�≪�����������羞宴�������ャ�若����ŝ�≪�˨�˨�ゃ����⓾�� perlretut ������ ��ŝ����<�㋘�潟�鴻�˨�ゃ����⓾�� perlre ��������с����⓾��������������

AUTHOR AND COPYRIGHT

Copyright (c) 2000 Mark Kvale All rights reserved.

This document may be distributed under the same terms as Perl itself.

Acknowledgments

The author would like to thank Mark-Jason Dominus, Tom Christiansen, Ilya Zakharevich, Brad Hughes, and Mike Giroux for all their helpful comments.