常用正则表达式标准
1. 字符匹配:
普通字符:直接匹配对应的字符,比如“a”就匹配字母a。在ASCII编码中,字母有26个大写(65 90)和26个小写(97 122),数字是0 9(48 57) ,还有各种标点符号都有对应的ASCII码值,普通字符就按其ASCII码值进行匹配。例如正则表达式“abc”,就精确匹配字符串“abc”。
元字符:具有特殊含义。
点号(.):匹配除换行符(\n)之外的任意单个字符。在Unicode编码下,它能匹配基本多文种平面(BMP)内的任意字符,涵盖了世界上大部分常用文字。像正则表达式“a.c”,可以匹配“abc”“aec”等。
方括号([ ]):定义一个字符集合,匹配集合中的任意一个字符。例如“[abc]”匹配“a”“b”或“c”;“[0 9]”匹配0到9之间的任意一个数字,在ASCII码表中,数字字符的范围是连续的,这样表示简洁方便。
脱字符(^):在方括号内使用时,表示取反,匹配不在集合中的任意一个字符。如“[^abc]”匹配除了“a”“b”“c”之外的任意字符。
2. 数量限定:
星号(*):表示前面的字符或子表达式出现0次或多次。例如“a*”,可以匹配空字符串,也可以匹配“a”“aa”“aaa”等。
正则匹配多个数字
加号(+):表示前面的字符或子表达式出现1次或多次。如“a+”,至少匹配一个“a”,像“a”“aa”“aaa”等都符合,但空字符串不匹配。
问号(?):表示前面的字符或子表达式出现0次或1次。例如“a?”,可以匹配空字符串或“a”。
花括号({m,n}):表示前面的字符或子表达式至少出现m次,最多出现n次。如“a{2,4}”,匹配“aa”“aaa”“aaaa”。如果只写一个数字,如“a{3}”,就精确匹配3个连续的“a”。
3. 边界匹配:
脱字符(^):在正则表达式开头使用时,表示匹配字符串的开头。例如“^abc”,只有字符串以“abc”开头时才匹配,像“abcdef”匹配,而“defabc”不匹配。
美元符号():表示匹配字符串的结尾。如“abc”,只有字符串以“abc”结尾时才匹配,像“defabc”匹配,“ab
cdef”不匹配。
单词边界(\b):匹配单词的边界,单词边界是指单词和非单词字符之间的位置,或者字符串的开头和结尾。例如“\bcat\b”,能匹配“the cat is cute”中的“cat”,但不会匹配“category”中的“cat”。
4. 分组与捕获:
圆括号(( )):用于分组和捕获。分组是将多个字符或子表达式看作一个整体,以便对其应用数量限定等操作。例如“(ab)+”,匹配“ab”“abab”“ababab”等。捕获是将括号内匹配到的内容存储起来,以便后续引用。在大多数编程语言中,第一个捕获组的编号是1,第二个是2,以此类推。如在“(a)(b)”中,“a”是第一个捕获组,“b”是第二个捕获组。
5. 特殊字符转义:一些元字符本身在正则表达式中有特殊含义,如果要匹配这些字符本身,就需要使用反斜杠(\)进行转义。例如要匹配点号“.”,正则表达式应该写成“\. ”;要匹配星号“*”,写成“\* ” 。在不同的编程语言中,对反斜杠的处理可能稍有不同,有的需要使用双反斜杠“\\”来表示一个真正的反斜杠进行转义。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。