基本语法 | ||
^ 匹配字符串的开始 | WHERE name REGEXP '^me' | |
$ 匹配字符串的结束 |
WHERE name REGEXP 'd$' |
|
. 匹配任意单个字符 |
WHERE name REGEXP '^..at' 输出 : platinum 匹配包含特定字符串的字符串WHERE name REGEXP 'in'输出 : platinum |
|
[...] 匹配方括号内的任意一个字符 |
REGEXP '[0-9]' 数字 , 原字符中有数字即为true REGEXP '[a-z]' 任何字母[a-z0-9] 字母或数字 |
|
[^...] 匹配除了方括号内所列字符之外的任意一个字符 | 否定④ | |
p1|p2|p3 选择性匹配,匹配p1、p2、p3 中的任意一个模式 |
REGEXP '^[aeiou]|d$' 开头为aeiou中的一种或者以d结尾 |
|
* 匹配‘*’前面的子表达式零次或多次 |
select 'p' regexp 'pk*'; true select 'pk' regexp 'pk*'; true select 'pkkkkkkkkk##$#%#^' regexp 'pk*'; true select 'tyu' regexp 'pk*'; false |
|
+ 匹配‘+’前面的子表达式一次或多次 |
select 'p' regexp 'pk+'; false select 'pk' regexp 'pk+'; true select 'pkkkkkkkkk##$#%#^' regexp 'pk+'; true |
|
?匹配'?'前面的字符最多一次 |
select 'color' regexp 'colou?r'; true select 'colouur' regexp 'colou?r'; false |
|
{n}匹配前面的字符n次 |
select 'pkko' regexp 'pk{2}o'; true select 'pkkkko' regexp 'pk{2}o'; false |
|
select 'pkko' regexp 'pk{0,4}o'; true select 'pkkkkko' regexp 'pk{0,4}o'; false |
||
|
||
贪婪匹配和非贪婪匹配 ? |
匹配输入串A: 1001000100 |
主要区别在于是否加?当?紧随任何其他限定符之后时,匹配模式是"非贪心的"。“非贪心的"模式匹配搜索到的、尽可能短的字符串,而默认的"贪心的"模式匹配搜索到的、尽可能长的字符串。 |
组捕获 |
|
|
( ) |
圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本 1、(abc)*表示这一组要么一起出现,要么不出现,出现那则按顺序出现 2、(abc|bcd|cde) 表示这一段是abc、bcd、cde三者之一,顺序也必须一致 3、(0-9)匹配’0-9’本身 4、(abc?) 表示匹配ab后面可以跟着一个或多个c ,例如匹配网址,可以用’(https?)'表示http开头 或 https 都可以匹配的到 5、{0-9}写法是错误的 |
|
? : |
|
?: 表示不存入捕获组中 group(0)和group()都代表匹配到的字符串,0 代表整个表达式 group(i) i>0 代表存放的组数据 |
[ ] |
方括号[]是单个匹配 字符集/排除字符集/命名字符集 1、[0-3] 表示找到一个位置上的字符只能是0到3这四个数字,与(abc|bcd|cde)的作用比较类似,但圆括号可以匹配多个连续的字符 而一对方括号只能匹配单个字符 2、[^0-3] 表示找到这个位置上字符只能是除了0到3之外的所有字符 3、1,含义为以0-9中的数字为第一个数字开头 4、[\x{4e00}-\x{9fa5}a-zA-Z0-9] 匹配中文或26个大小写字母或0-9数字。 5、[0-9]{0,9} 表示长度为0到9的数字字符串 6、[(a)],会匹配(、a、)** 这三个字符 |
|
|
||
find() |
|
|
|