正则从接触到放弃

一丶字符组


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""[^"]*""

猜你喜欢

转载自www.cnblogs.com/cangshuchirou/p/9185136.html
今日推荐