zoukankan      html  css  js  c++  java
  • 3.2.2.1 匹配单个字符

        最先开始是匹配单个字符。可采用集中方式做到:以一般字符、以转义的 meta 字符、以 . meta 字符,或是用方括号表达式:
     
    • 一般字符指的是未列于 POSIX BRE 于 ERE 的 meta 字符,包括所有文字和数字字符、绝大多是的空白字符以及标点符号字符。因此,正则表达式 a ,匹配于字符 a 。我们可以说,一般字符所表示的就是它们自己,且这种用法是最直接且易于理解的。所以,shell 匹配 shell。
    • 若 meta 字符不能表示它们自己,那当我们需要让 meta 字符表示它们自己的时候,该怎么办?答案是转义它。在前面放一个反斜杠来做到这一点。因此,* 匹配于字面上的 * ,\ 匹配于字面上的反斜杠,还有 [ 匹配于左方括号。
    • . 字符意即“任一字符”。因此,a.c 匹配于 abc、aac 以及aqc。单个点号用以表示自己的情况很少,它多办与其他 meta 字符搭配使用,这一结合允许匹配多个字符,这部分稍后会提及。
    • 最后一种匹配单个字符的方式是使用方括号表达式。最简单的方括号表达式是直接将字符列表放在方括号里,例如,[aeiouy] 表示的就是所有小写元音字母。在方括号表达式里,^放在首字母表示是取反的意思;也就是说不在方括号列表里的任意字符。所以 [^aeiouy] 指的就是小写元音字符以外的任何字符,例如:大写元音字母、所有辅音字母、数字、标点符号等。
     
        将所有要匹配的字母全列出来是一件无聊又麻烦的事。例如[0123456789]指所有数字,或[0123456789abcdefABCDEF]表示所有十六进制数字。因此,方括号表达式可以包括字符的范围。像前面提到的两个例子,就可以分别以[0-9]与[0-9a-fA-F]表示。
     
        在方括号表达式中,所有其他的 meta 字符都会失去其特殊含义。所以 [ *. ] 匹配于字面上的星号、反斜杠以及句号。要让 ] 进入该集合,可以将它放在列表的最前面:[]*.],将 ] 增加至此列表中。要让减号字符进入该集合,也请将它放到列表最前端 [-*.] 。若你需要都有方括号与减号两者进入列表,请将右方括号放到第一个字符、减号放到最后一个字符:[]*.-]。
     
        最后,POSIX明确陈述:NUL字符(数值的零)不需要是可匹配的。这个字符在 C 语言里是用来指出字符串结尾,而 POSIX 标准则希望让它直接了当的,通过C字符串的使用实现其功能。除此之外,另有其他个别的工具程序不允许使用 . meta 字符或方括号表达式来进行换行字符匹配。
  • 相关阅读:
    activity学习参考
    Activity工作流入门
    Mysql 命令查看函数,触发器。。
    本地redis下载并启动
    Could not initialize class com.taobao.diamond.client.impl.DiamondEnvRepo
    mysql把表(表已有数据)的某列属性由空到非空,以及常用列操作
    easyexcel导出两种方式response返回文件流下载和保存到服务器返回下载链接
    EasyExcel导出带下拉框,并解决导出之后打开总是显示发现不可读取内容
    el-table的fixed固定列属性导致数据错位
    el-input按回车时,解决同时触发回车和失焦事件的问题
  • 原文地址:https://www.cnblogs.com/avention/p/10307116.html
Copyright © 2011-2022 走看看