1. 元字符包括:^ $ ( ) \ | @ [ { ? . + *
2. 如果对一个模式进行0次、1次或任意许多次匹配不能满足你的要求,那么Perl允许根据你需要的具体次数为你进行匹配,方法是使用花括号{}。格式如下:
PAT{n, m};
在这里,n表示匹配的最小次数,m表示匹配的最大次数。可以省略m和n的其中之一,但不能同时省略。请看下面例子:
/x{5, 10}/; ## x至少出现5次,但不超过10次
/x{9, }/; ## x至少出现9次,也可能出现更多次
/x{0, 4}/; ## x至多出现4次,也可能根本不出现
/x{8}/; ## x正好出现8次,不能多,也不能少
3. grep函数
在Perl中,一个常见的操作是搜索数组,寻找某些模式。例如,如果将一个文件读入一个数组,然后你想要知道哪一行包含一个特定的单词。grep函数可以帮你完成这样一个功能。grep函数句法如下:
grep expression, list;
grep函数迭代运行通过list中的每一个元素,然后执行expression。在expression中,$_被设置为list列表中的每一个元素。如果该表达式为真,grep就返回该list的这个元素。请看下面这个例子:
@names = qw(Kobe James Yao);
@superstar = grep /o/, @names;
在上面这个例子中,$_被一次赋值为@names中的每个元素。然后根据$_对表达式/o/进行判断,判断为真是返回该元素,并存放在@superstar中。这里@superstar被赋值为:Kobe和Yao
在这里要注意两点:
(1)在表达式中,$_是对列表中的实际元素的引用,改变$_的值,列表中实际元素的值也会相应改变。
(2)grep不一定必须与模式匹配或替换运算符一道使用,它可以与任何运算符一道使用。下面这个例子用于检索长度超过4个字符的人名:
@longnames = grep lenth($_)>4, @names;