词条 | 元字符 |
释义 | 所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。 解释元字符是一个或一组代替一个或多个字符的字符。听起来有点拗口,但举一个例子也许你就明白了:元字符*用来匹配一个或多个的前一字符;而元字符 . 用来匹配一个任意的一个字符。 字符应用较为常用的元字符包括: “+”, “*”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。 下面,就让我们来看一下正则表达式元字符的具体应用。 /fo+/ 因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。 /eg*/ 因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。 /Wil?/ 因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。 除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如, /jim/ 上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。 使用方式在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。 \\s:用于匹配单个空格符,包括tab键和换行符; \\S:用于匹配除单个空格符之外的所有字符; \\d:用于匹配从0到9的数字; \\w:用于匹配字母,数字或下划线字符; \\W:用于匹配所有与\\w不匹配的字符; . :用于匹配除换行符之外的所有字符。 (说明:我们可以把\\s和\\S以及\\w和\\W看作互为逆运算) 下面来看看更多的例子: \\ba\\w*\\b匹配以字母a开头的单词——先是某个单词开始处(\\b),然后是字母a,然后是任意数量的字母或数字(\\w*),最后是单词结束处(\\b)。 好吧,现在我们说说正则表达式里的单词是什么意思吧:就是不少于一个的连续的\\w。不错,这与学习英文时要背的成千上万个同名的东西的确关系不大 :) \\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。 \\b\\w{6}\\b 匹配刚好6个字符的单词。 元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\\d{5,12}$。 这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。 因为使用了^和$,所以输入的整个字符串都要用来和\\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。 和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^和$的意义就变成了匹配行的开始处和结束处。 egrep元字符总结匹配单个字符的元字符 . 点号 匹配单个任意字符 […] 字符组 匹配单个列出的字符 [^…] 排除型字符组 匹配单个未列出的字符 \\char 转义字符 若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符 提供计数功能的元字符 ? 问号 容许匹配一次,但非必须 * 星号 可以匹配任意多次,也可能不匹配 + 加号 至少需要匹配一次,至多可能任意多次 {min,max} 区间量词 至少需要min次,至多容许max次 匹配位置的元字符 ^ 脱字符 匹配一行的开头位置 $ 美元符 匹配一行的结束位置 \\< 单词分界符 匹配单词的开始位置 \\> 单词分界符 匹配单词的结束位置 其他元字符 | alternation 匹配任意分隔的表达式 (…) 括号 限定多选结构的范围,标注量词作用的元素,为反向引用”捕获”文本 \\1,\\2,… 反向引用 匹配之前的第一、第二组括号内的字表达式匹配的文本 使用括号的3个理由:限制多选结构、分组、捕获文本 -i的参数很有用,它能忽略大小写的匹配 转义有3种情况: 1. \\ 加上元字符,表示匹配元字符所使用的普通字符。 2. \\ 加上非元字符,组成一种由具体实现方式规定其意义的元字符序列 如\\<表示单词的起始边界。 3. \\ 加上任意其他字符,默认情况就是匹配此字符,也就是说,反斜线被忽略了。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。