基础定义:
`\d`:匹配数字
`\w`:匹配数字或字母
`.`:匹配任意字符
`\s`:匹配空格
`*`:任意个字符
`+`:多个
`?`:0/1个
`{n}`:n个
`{n,m}`:n-m个
`[]`:标适范围
`A|B`:可以匹配A或B
`^`表示行的开头
`$`表示行的结束
特殊字符需要用`'\'`转译.例:'-'=>`\-`
例子:
1. 例:

* ^ 为匹配输入字符串的开始位置。
* [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。
* abc$匹配字母 abc 并以 abc 结尾,$为匹配输入字符串的结束位置。
2. 例:
我们在写用户注册表单时,只允许用户名包含字符、数字、下划线和连接字符(-),并设置用户名的长度,我们就可以使用以下正则表达式来设定。

在JavaScript中使用正则:
- RegExp:是正则表达式(regular expression)的简写。
语法:
var patt = new RegExp(pattern,modifiers) 或者 var patt = /pattern/modifiers 例: var re = new RegExp("w+"); 等价于 var re = /w+/;
- i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。
test():查询指定字符返回true/false 例:re.test('sting') exec():查询指定字符返回被找到的值/null 例:re.exec('sting')
在python当中使用正则
- re模块
- 转译:
s = 'ABC\\001'等价于s = r'ABC\001'
=>'ABC-001'
match()
方法判断是否匹配,返回一个Match
对象/None
import re
re.match(r'^d{3}-d{3,8}$', '010-12345')
//<_sre.SRE_Match object; span=(0, 9), match='010-12345'>
re.match(r'^d{3}-d{3,8}$', '010 12345')
//none
- 切割字符串
'a b c'.split(' ')
// ['a', 'b', '', '', 'c']
// 无法处理空格
re.split(r'[s,;]+', 'a,b;; c d')
// ['a', 'b', 'c', 'd']
// 自动处理
- 分组
用()
表示的就是要提取的分组(Group)
t = '19:05:30'
m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
m.groups()
// ('19', '05', '30')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。