如果初次看正则表达式,一定会被它奇怪的样子吓坏的。 比如下面这个表达式
(<[Aa]\s+[^>]+>\s*)?<[Ii][Mm][Gg]\s+[^>]+>(?(1)\s*</[Aa]>)
其实这个正则表达式不算复杂,基本上使用简单匹配加上嵌入条件。其实很多看起来比较复杂表达式无非式一些方式的组合而已,等你掌握正则表达式这个强大的工具之后,你就会发现,看上去很抽象的表达式变得亲切容易起来。
这个文章系列文章主要会设计到以下一些知识点,一般网上查到到无非一些现成的例子,而这些例子要么不完全符合自己的需求,要么根本就是有错误。属于正则表达式的基础用法,而只有深入了解原理之后,才能随心所欲改造现有的表达式或者自己创造自己考虑周全的表达式。
- 元字符
- 重复匹配
- 位置匹配
- 子表达式
- 回溯引用
- 前后查找
正则表达式主要用来处理文本,包含查找替换。而且一个好处在目前世面上编程语言都对正则表达式进行支持,且语法差异一般不大。因此,在自己熟悉的语言下使用正则表达式及其方便。本文将主要介绍上文提到的元字符相关内容.
元字符
一般来讲,如果你想在一串文本中查找123,最好的正则表达式就是123。但是就我所了解的来看,一般的需求是查找一类的文本。而怎样归类这些文本呢?比如我想在一篇文章内,查找出所有的数字字符串,这时候明显123这样的表达式就不适用了。这个时候就需要使用元字符了,由于要查找数字,这个时候我们使用元字符[\d](等价于[0-9])。当然也可以写成[0123456789],当然这样写不够简洁,也不便使用。所以定义好元字符后,需要记住这些元字符,便于读懂或者自己书写。
元数据表格
元字符名称 | 元字符 | 说明 |
---|---|---|
换行符 | \n | 用于查找文本的换行,当windows一般使用\r\n |
回车符 | \r | 见上方说明 |
制表符 | \t | 匹配键盘tab键 |
空格 | \s | 匹配键盘space空格 |
数字 | \d | 匹配0-9数字 |
匹配字母数字字符 | \w | 等价于 [a-Za-z0-9_] |
任意字符 | . | 匹配任意字符 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。