一丶字符组
1.1普通字符组
概念:字符组是正则表达式最基本结构之一,顾名思义,字符组就是一组字符
功能:表示在正则表达式中,在同一个位置可能出现的各种字符
分类:字符可以分为很多类,比如数字丶字母丶标点等.
例如:
简单字符组,[ab]、[314]、[#.?]在解决常用问题时,可以简化大大操作
注:perl语言是正则表达式处理最方便的语言
1.2python基础知识
import re
re.search()
^定位到字符串起始位置
$定位到字符串结束位置
1.3普通字符组(续)
字符组中的字符排列顺序不影响字符组的功能
范围表示法range,[0-9]等于[123456789]等于[123789456]
码值小的在前,码值大的在后.
补充:码值问题
0~9是48~57 a~z是97~122,A~Z是65~90
例子:匹配十六进制,十进制字符
1.4元字符与转义
-不表示横杠而表示的是范围,这类字符叫元字符
开方括号[
闭方括号]
^所有开头
$所有结尾
反斜线\用来转义
原生字符串r"string"
r"^[0\-9]$"=="^[0\\-9]$"
1.5排除型字符组
[^]除了范围内的字符
排除型字符组必须要匹配一个字符
1.6字符组简记法
用[0-9]和[a-z]可以很方便的表示数字字符和小字母字符,这类常用的字符组,正则表达式提供了更简单的记忆法,这就是字符组简记法
常见字符组简记法为:
.匹配任意字符,但除了换行符
\d匹配所有数字[0-9]
\w匹配所有数字,字母或下划线[0-9a-zA-Z]
\s匹配所有空白[ \t\r\n\v\f] 空格,制表,回车,换行
与上面互补
\D
\W
\S
互补则匹配任意字符如:[\d\D]
补充:
字符组中出现了字符组简记法,最好不要出现单独的-
\d\w\s都是针对ASCII码而言的匹配规则.但目前有的语言已经支持了Unincode
1.7字符组运算
1.8 POSIX字符组
你可能会发现[:digit:],[:lower:]之类的字符组
他们就是POSIX字符组POSIX character class
单独百度吧
第一部分第二章量词
2.1一般的形式
例如{6}重复六次的量词表达
{m,n}m下限,n上限
{n}之前元素必须出现n次
{m,n}之前的元素最少出现m次,最多出现n次
{m,}之前元素最少出现m次,最多出现次数无上限
{0,n}之前的元素可以不出现,也可以出现,最多出现n次
2.2常用的量词
{m,n}是通用形式的量词
+ {1,}至少出现一次,出现次数没有上限
? {0,1}出现1次,也可能不出现
* {0,}可能出现,也可能不出现,出现次数没有上限
例如用于和美语中的traveler和traveller r"^travell?er$"
价格可能是100也肯能是$100 r"$?100"
匹配标签字符
r"<[^>]+>"
匹配双引号字符
r""[^"]*""