01 元字符
正则表达式 —— 字符串的规则。
元字符就是指那些在正则表达式中具有特殊意义的专用字符。

02 量词与贪婪
贪婪(Greedy) *
:匹配最长。在贪婪量词模式下,正则表达式会尽可能长地去匹配符合规则的字符串,且会回溯。
preg_match_all("/a*/i", "aaabb", $matches); |
非贪婪(Reluctant) +?
:匹配最短。在非贪婪量词模式下,正则表达式会匹配尽可能短的字符串。
ENV:Python3
import re |
独占模式(Possessive) ++
:同贪婪一样匹配最长。不过在独占量词模式下,正则表达式尽可能长地去匹配字符串,一旦匹配不成功就会结束匹配而 不会回溯。
# 回溯示例: |
# 独占模式示例: |
03 分组与引用
import regex |
04 匹配模式
指改变元字符匹配行为。
不区分大小写模式(Case-Insensitive)(?模式标识)
(?i)
。
import regex |
# https://regex101.com/r/3OUJda/1 |
点号通配模式(Dot All)(?s)
让英文的点 .
可以匹配上包括换行的任何字符。等价 [\s\S]
[\d\D]
[\w\W]
。
# https://regex101.com/r/zXtwLv/1 |
多行匹配模式(Multiline)(?m)
使 ^
和 $
能匹配上每行的开头或结尾。
# 分行匹配 |
注释模式(Comment)(?#)
(\w+)(?#word) \1(?#word repeat again) |
05 断言 Assertion
对要匹配的文本的位置也有一定的要求。只用于匹配位置,而不是文本内容本身,这种结构就是断言。
边界(Boundary)
import re |
# 环视 左尖括号代表看左边,没有尖括号是看右边,感叹号是非的意思 |
06 转义
import re |