常用速查
匹配中文字符
[\u4E00-\u9FFF]
匹配网址
[http://|ftp://|https://|www]?[^\u4e00-\u9fa5\s]*?\.[com|net|cn|me|tw|fr][^\u4e00-\u9fa5\s]*
系统学习
学习用书: 正则表达式必知必会
1. 入门
- 名称:
Regular Expression
(abbr. regex) - 定义: 正则表达式是一些用来匹配和处理文本的字符串
- 功能:
- 搜索(匹配文本)
-
替换(匹配并替换文本)
-
注意: 不同语言or软件在使用正则时有微小出入
2. 匹配单个字符
- 纯文本: 放上对应的纯文本就ok
-
任意字符: 用元字符(Metacharacter)
.
来表示任意字符这相当于Dos中的
?
以及SQL中的_
-
转义符:
\
是一个元字符, 其作用不言而喻, 就是将ta后面的有特殊意义的字符转换为纯文本一般, 称一个实际的正则表达式为 模式
3. 匹配一组字符
- 字符集合区间: 在
[]
中加入想要匹配的单个字符
例:
[Cp]a[Tt]
可以匹配到如下四个字符串pat paT Cat CaT
注意: 要想返回全部匹配结果就要用
g
标志(global)
且不同语言or工具使用方法不同
相似地, 如果要无视字母的大小写, 就要用i
标志
- 连字符:
-
是元字符之一, ta的作用时表示ASCII字符表上, 其左右连接的字符间的所有字符
[0-9]
和[0123456789]
完全等价
- 常用的字符集和区间:
[a-z]
[A-Z]
-
[0-9]
-
注意:
-
的左右字符必须在ASCII上是前后关系, 否则无意义
另外,[A-z]
会掺杂进Z和a之间的其他字符, 不推荐使用 - 取非匹配: 元字符
^
如果出现在[]
中间的最前面, 那么表示不匹配这个区间内的字符
5. “贪婪型”元字符和”懒惰型”元字符
- 贪婪型: 在一行内尽可能多的匹配
- 懒惰型: 在一行内尽可能少的匹配
| 贪婪型 | 懒惰型 |
| :—–: | :——: |
| * | *? |
| + | +? |
| {n, } | {n, }? |