-白话基本语法
符号 | 功能 |
---|---|
. | 匹配单个任意字符 |
^ or \A | ^aaa 匹配以aaa开头的字符串 |
$or\Z | aaa$匹配已aaa作为结尾,一般情况不会单独使用,因为单独使用只是匹配这个字符串不会匹配额外的 |
[ ] | b[aeiou]t 单个元素可为集合匹配bat\bet\bit\bot\but |
- | 范围规范符号,[A-Z] 为A-Z之间任意元素 |
^ | 紧跟左括号后面除去这个[]内元素外其他元素匹配 [^abc]除abc外的元素 |
* | 前面表达式n次或0次出现,记忆方法:*向四周又五个边所以范围最大 |
+ | 前面表达式1次或者n次出现,记忆方法:+向四周有4个就其次 |
? | 前面表达式0次或1次出现,记忆方法:?没有所以就0次或1次啦 |
{} | [0-9]{n,m}匹配n次或者m次0-9的数 |
\w | 表示[A-Za-z0-9],说白了就是一般用户名设置的字符限制 ,大写版表示不匹配 |
\d | 表示0-9单个字符,大写版表示不匹配 |
\s | 表示空格字符,大写版表示不匹配 |
() | ()括起来得表达式是可以在函数层面进行抽离获取的 |
扩展表示法 |
---|
(?:\w+.)* 只匹配以\w.结尾的字符串,书上说是这些匹配不会保存下来供给后续的使用和数据检索,自己还没测试到这点,打个※ |
(?#xxxx) 进行注释 |
(?=XXX) 如果一个字符串后面跟着XXX 才进行匹配 |
(?!=XXX) 如果一个字符串后面不是跟着XXX 才进行匹配 |
(?<=XXX) 如果一个字符串前面是XXX 才进行匹配 |
(?<!XXX) 如果一个字符串前面部位XXX 才进行匹配 |
(?(1)y|x) 如果一个匹配组(\1)存在,就与y匹配,否则与x匹配,类似于三目运算符 |