perl中的量词:
创建正则表达式:引用前一次匹配的向后引用
在相同的表达式中引用前面的匹配:通过反斜线以及数字\1,\2,\3等,来引用相同模式中以前的匹配值。表达式\1代表第一次匹配,\2代表第二次匹配,依次类推。
例如,处理html,并需要确保正在匹配从开始到相应的结束表姐之间的文本,如<A>到<\A>:
*-----------------匹配0或多次
+-----------------匹配1或多次
?-----------------匹配0或1次
{n}-----------------匹配n次
{n,}-----------------匹配至少n次
{n,m}-----------------匹配至少n次,至多匹配m次
perl中的合法断言:
^-----------------匹配行首
+-----------------匹配行尾(或者末尾前的新行)
\A-----------------仅匹配字符串开头
\B-----------------匹配非单词边界
\b-----------------匹配单词边界
\G-----------------仅匹配前一个m//g剩余的内容(仅仅能和/g一起使用)
\Z-----------------仅仅匹配字符串的末尾,或者末尾前的新行
\z-----------------仅仅匹配字符串的末尾
(?=EXPR)-----------如果EXPR可以匹配下一个,则进行匹配
(?!EXPR)-----------如果EXPR不能匹配下一个,则进行匹配
(?<=EXPR)----------如果EXPR可以匹配前一个,则进行匹配
(?<!EXPR)----------如果EXPR不能匹配前一个,则进行匹配
确保用户输入的所有行至少具有20个字符:
print "\n--------------------------(.{20,}) USED-----------------------------\n";
print "Enter:";
while(<>){
if(!m/.{20,}/){
print "Please type longer line!";
}
}
print "\n--------------------------END (.{20,}) USED--------------------------\n";
默认情况下,量词非常贪婪的,这意味着通过创建从当前查找位置开始的合法匹配,它门将返回找到最长的匹配值。
创建正则表达式:引用前一次匹配的向后引用
在相同的表达式中引用前面的匹配:通过反斜线以及数字\1,\2,\3等,来引用相同模式中以前的匹配值。表达式\1代表第一次匹配,\2代表第二次匹配,依次类推。
例如,处理html,并需要确保正在匹配从开始到相应的结束表姐之间的文本,如<A>到<\A>:
print "\n--------------------------('\1') USED-----------------------------\n";
$text="<A>Here is an anchor.<\A>";
if($text=~/<(IMG|A)>[\w\s\.]+<\/\1>/i){
print "Found an image or anchor tag.";
}
print "\n--------------------------END ('\1') USED--------------------