chrisongs的个人空间 https://blog.eetop.cn/chrisongs [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Perl之正则表达式

已有 942 次阅读| 2013-1-6 13:16 |个人分类:技术文章

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;


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 1

    获赞
  • 4

    评论
  • 412

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 23:17 , Processed in 0.024760 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部