정규 표현식은 기본적으로
단일 숫자("[0-9]
" 또는 "d
")와 일치합니다. [0-9]
” 也可以是 “d
”。
匹配单个非数字字符,则使用大写 “D
”。
匹配 26 个字母的任意一个,使用 “[a-zA-Z]
”
匹配任意一个字符,使用点号 “.
”
匹配具体字符,则直接写上去即可。比如 “abcd
” 就是匹配它本身。如果遇到特殊字符,则需要进行转义,转义字符为 “”。
匹配一个字符,使用中括号的做法称为 “字符集”。中括号用于指定一个 “集”,匹配这个集中的一个字符,如十六进制数 “[0-9a-fA-F]
”。字符集内的点表示的是点号本身,但其他的特殊字符还是需要进行转移,比如反斜杠字符。
如果要表示某个规则的重复,则需要使用量词。使用花括号表示重复次数。比如 8 个数字可以这样表示:“d{8}
”
花括号中的量词可以变化,比如表示 7 到 8 个数字,则表示为 “d{7,8}
”。表示上限的右值可以不写,比如 “{0,}
” 是合法的,表示大于等于 0 个字符;但试图单独表示上限的 “{,10}
” 则不合法,至少应该写为 “{0,10}
”。
加号 “+
” 表示它左边的元素数量为 “一个或多个”,等于 “{1,}
” 的效果。所以加号也是特殊字符。
星号 “*
” 表示它左边的元素数量为 “零个或至少一个”,即 “{0,}
”。
问号 “?
” 表示 “零个或一个”,等同于 “{0,1}
”。
上面的诸如 +
、*
,匹配的时候都会使用 “贪心” 的模式,也就是匹配尽量多的个数。比如字符串 “55555”,使用 “5+
” 去匹配时,会匹配到它能够找到的最长字符串,即 “55555”。
如果在量词后面加上问号,则使匹配模式变为 “懒惰” 的,也就是匹配最少的。比如使用 “5+?
” 去匹配,则只会找到能够匹配的最小字符 “5”.
以下都是可用的懒惰匹配表达式:+?
, *?
, {n,}?
, {m,n}?
可以把表达式中的一部分 “捕获” 起来,作为宏放在后边引用。使用括号进行定义(捕获),然后再定义的后面使用 “1
” 进行引用;如果是第二个捕获,则使用 “2
”,以此类推。
分组一般都会被保存起来,但是当表达式非常长的时候,可能需要明确指明不保存该分组。比如使用这个格式 “(?:THE|The|the)
”,就使用了 “?:
” 标号来表示不要进行命名标记。
使用 “|
” 来链接两个字段,提供 “或” 的逻辑。注意与括号搭配使用
如果在集合 “[...]
” 中使用字符 “^
”,则表示 “非”,如 “[^0-9]
” 等同于 “D
”。
以下是各种常用的单字符匹配列表:
指代类型 | 模式 | 备注 |
---|---|---|
数字 | d |
|
字母、数字、下划线 | w |
等效于 “[_a-zA-Z0-9] ” |
非数字 | D |
|
非字母 | W |
|
制表符 Tab | t |
|
Null 字符 |
|
위 내용은 정규식 문자 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!