正则表达式=普通字符+特殊字符(元字符)
+:[+]之前的字符出现>=1
runoo+b 可匹配runoob、runooob...
*:次数>=0
runoo*b可匹配runob、runoob、runooooob...
?:次数=1或0
colou?r 匹配color、colour
{n}:次数=n,n->非负整数
o{2}可匹配roob,不能匹配rob
{n,}:次数>=n,n->非负整数
{m,n}:要求:m<n,m、n 均为非负整数,最少匹配m,最多匹配n次
. :匹配非换行符的单个字符=[^\n\r]
[\s\S]: 匹配所有,\s匹配所有空白符(包括换行符),\S 非换行符(不包括换行符)
\w :=[a-zA-Z0-9_]字母、数字、下划线
\d=[0-9]
特殊字符
$ | 匹配字符串的结尾位置 |
---|---|
() | 标记一个子表达式的开始和结束位置 |
| | 两者选一个 |
定位符
^ | 匹配字符串的开始位置 |
---|---|
$ | 匹配字符串的结束位置 |
\b | 匹配一个单词边界——字与空格间的位置 |
\B | 非单词边界匹配 |
断言:
-
正向先行断言: (?=)
-
我们要匹配文本中的小时值。为了只匹配后面有 PM 的数值,我们需要在表达式后面使用正向先行断言 (?=),并在括号内的 = 后面添加 PM。
Date: 4 Aug 3PM
result: \d+(?=PM)
-
-
负向先行断言: (?!)
-
我们要在文本中匹配除小时值以外的数字。我们需要在表达式后面使用负向先行断言 (?!),并在括号内的 ! 后面添加 PM,从而只匹配没有 PM 的数值。
Date: 4 Aug 3PM
result : \d+(?!PM)
-
习题库:
课程 10:开始与结束 | RegexOne 中文 - 通过简单的交互式练习来学习正则表达式
在数据库中可以使用修改数据:`
UPDATE `b_basic_data` SET `longitude` = NULL WHERE `longitude` NOT REGEXP '^[0-9]+[.]?[0-9]*$';
`