re
正则
简介
正则表达式是计算机科学的一个概念,正则表通常被用来检索、替换那些符合某个模式(规则)的文本。也就是说使用正则表达式可以在字符串中匹配出你需要的字符或者字符串,甚至可以替换你不需要的字符或者字符串。
字符匹配(元字符、普通字符)
正则表达式的元字符
. ^ $ * + ? {} [] \ | ()
.
通配符 匹配换行符除外的所有字符^
匹配以^xx
开头的$
匹配以xx$
结尾的\
比较强大- 后面跟元字符 去除特殊功能
\.
匹配.
本身 - 后面跟普通字符 实现特殊功能
\d
匹配0~9
的数字
\w
匹配任何字母和数字
\s
匹配任意的空白子符 包括空格 制表符(tab
)换行符等
\b
匹配单词的边界
\D
匹配除数字以外的字符
\W
匹配任何非字母和数字
\S
匹配任意非空白字符
- 后面跟元字符 去除特殊功能
匹配次数
*
匹配0~多次 {0,}abc*
表示ab abc abcc abccc abccc 等
+
匹配1~多次 {1,}abc1+
表示abc abcc abccc abccc等
?
匹配0~1次 {0,1}abc?
表示ab abc
*{N}
匹配前一个字符N
次ab{2}c
表示abbc
*{N, M}
匹配N
次到M
次N<=M
ab{1, 3}
表示abc abbc abbbc
注意 *? 、 +? 、 {N, M}? 贪婪和非贪婪
[]
字符集 对单个字符给出取值范围[ab]
表示 a、b[a-z]
表示 a到z
[^]
非字符集 对单个字符排除取值范围[^ab]
表示非a,非b的单个字符
分组
()
分组将要匹配的一类字符集放在一组(\d){5}
匹配5位数a(b)*
匹配一个a或者abbbbba(b|c)
匹配ab或者ac
正则表达式的普通字符
除了元字符以外的可以当成普通字符
一些方法
match()
从首字母开始匹配 成功返回match对象 失败返回Nonesearch()
只要找到包含的 就返回match对象 如果有多个 只返回第一个findall()
返回匹配的全部字符 返回形式为列表compile
把正则表达式编译成正则对象sub()
替换 类似于字符串的replace
方法group()
返回匹配到的字符串star()
返回匹配的开始位置end()
返回匹配的结束位置span
返回一个元祖表示匹配位置
部分知识点持续补充中…