正则表达式:简明教程
正则表达式:简明教程
声明:
本节内容主要转载自以下文章,感谢作者的辛勤劳作!
https://github.com/CyC2018/Interview-Notebook/blob/master/notes/正则表达式.md
概述
正则表达式用于文本内容的查找和替换。
正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。
匹配单个字符
语法说明:
. 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符;
\ 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。
实例:
【应用】
匹配单个字符
【正则表达式】
nam.
【匹配结果】
name
nama
namf
使用子表达式
语法说明:
- 使用 ( ) 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,并且使用 * 等元字符。
- 子表达式可以嵌套,但是嵌套层次过深会变得很难理解。
- | 是或元字符,它把左边和右边所有的部分都看成单独的两个部分,两个部分只要有一个匹配就行。
实例:
【正则表达式】
(ab){2,}
【匹配结果】
ababab
【正则表达式】
(19|20)\d{2}
【匹配结果】
1920
2019
回溯引用
语法说明:
回溯引用使用 \n 来引用某个子表达式,其中 n 代表的是子表达式的序号,从 1 开始。它和子表达式匹配的内容一致,比如子表达式匹配到 abc,那么回溯引用部分也需要匹配 abc 。
实例:
【应用】
匹配 HTML 中合法的标题元素
【正则表达式】
<(h[1-6])>\w*?<\/\1>
【匹配结果】
<h1>x</h1>
<h2>x</h2>
<h3>x</h1>