正则表达式在我们的日常代码中使用概率还是很高的,在一些常规代码解决不了的情况下使用正则表达式往往会达到很好的效果
基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用<>来表示一段具体的正则表达式。

1、文字符号

最基本的正则表达式由单个文字符号组成。如<>,它将匹配字符串中第一次出现的字符“a”。如对字符串“Jack is a boy”。“J”后的“a”将被匹配。而第二个“a”将不会被匹配。正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。在文本编辑器中,你可以使用“查找下一个”。在编程语言中,会有一个函数可以使你从前一次匹配的位置开始继续向后搜索。

类似的,<>会匹配“About cats and dogs”中的“cat”。这等于是告诉正则表达式引擎,找到一个<>,紧跟一个<>,再跟一个<>。

要注意,正则表达式引擎缺省是大小写敏感的。除非你告诉引擎忽略大小写,否则<>不会匹配“Cat”。

对于文字字符,有12个字符被保留作特殊用途。他们是:
[ ] ^ $ . | ? * + ( )
这些特殊字符也被称作元字符。

如果你想在正则表达式中将这些字符用作文本字符,你需要用反斜杠“”对其进行换码 (escape)。例如你想匹配“1+1=2”,正确的表达式为<>.
需要注意的是,<>也是有效的正则表达式。但它不会匹配“1+1=2”,而会匹配“123+111=234”中的“111=2”。因为“+”在这里表示特殊含义(重复1次到多次)。

在编程语言中,要注意,一些特殊的字符会先被编译器处理,然后再传递给正则引擎。因此正则表达式<>在C++中要写成“1\+1=2”。为了匹配“C:temp”,你要用正则表达式<>。而在C++中,正则表达式则变成了“C:\\temp”。
可以使用特殊字符序列来代表某些不可显示字符:

<>代表Tab(0×09)

<>代表回车符(0x0D)

<>代表换行符(0x0A)

要注意的是Windows中文本文件使用“rn”来结束一行而Unix使用“n”。
2 字符集

字符集是由一对方括号“[]”括起来的字符集合。使用字符集,你可以告诉正则表达式引擎仅仅匹配多个字符中的一个。如果你想匹配一个“a”或一个“e”,使用<>。你可以使用<>匹配gray或grey。这在你不确定你要搜索的字符是采用美国英语还是英国英语时特别有用。相反,<>将不会匹配graay或graey。字符集中的字符顺序并没有什么关系,结果都是相同的。

你可以使用连字符“-”定义一个字符范围作为字符集。<>匹配0到9之间的单个数字。你可以使用不止一个范围。<>匹配单个的十六进制数字,并且大小写不敏感。你也可以结合范围定义与单个字符定义。<>匹配一个十六进制数字或字母X。再次强调一下,字符和范围定义的先后顺序对结果没有影响。
以为是字符集的一些应用:

查找一个可能有拼写错误的单词,比如<<sep[ae]r[ae]te>> 或 <<li[cs]en[cs]e>>。</li[cs]en[cs]e></sep[ae]r[ae]te>

查找程序语言的标识符,<<a-za-z_][a-za-z_0-9]*>>。(*表示重复0或多次)</a-za-z_][a-za-z_0-9]*>

查找C风格的十六进制数<<0[xX][A-Fa-f0-9]+>>。(+表示重复一次或多次)

好了,今天就给大家介绍正则表达式的几个介绍及用点,下一截接着给大家介绍正则表达式~