元字符(2)

来源:互联网 发布:单纯形算法的基本思想 编辑:程序博客网 时间:2024/04/30 09:59


1、alternation-"|"
  |表示or,如grey|gray匹配grey或gray
注意|是贪婪匹配,即|会向前或向后搜索到头,上面的例子grey|gray中的|不表示y|g,如gra|ey不匹配gray或grey,而是匹配gra或ey。
|与[]的区别在于|的可选是一个串,而[]的可选只是[]内的某个字符,[]可理解为一个独立的"mini-language",在[]内有它自己对元字符的理

解(如^和-);|则是"main regular express"的一部分。
  |放在第一位呢?最后一位呢?如|abc匹配什么。
  |放在[]或()前后呢?如gr|[ae]y匹配什么?
2、大小写敏感
  大小写敏感并非正则表达是的一部分,与具体工具相关,如egrep就用命令行参数-i来表示忽略大小写2。
3、词边界-/<和/>
  分别表示词开始和词结束,注意单独的<和>不是元字符,具体例子见P16的图例。
4、optional-?
  ?放在一个character后面,表示该character可选(匹配时可有可无)。如colou?r表示u可以匹配或不匹配,即colou?r匹配color或colour。
  ?可与()一起组合,如4(th)?匹配4或4th
  ?放在第一个呢?如?able匹配什么。
  ?与[]组合呢?如gr[ae]?y匹配什么,引申开来的问题是[]也像()一样作为一个整体对待吗?