使用的是python3.6,大家可以自行测试,有问题欢迎指正
*:匹配号之前的字符或者字符串,出现0次或者多次。如ab*
+:匹配+号之前的字符或者字符串,出现1次或者多次。(至少出现一次) 如:a+b+
[]:匹配括号里面的字符 如[A-Z]*
():分组的子表达式 如 (ab)
{m,n}:匹配之前的字符或者表达式,出现次数在m, n之间 如a{2,3}b{2,3}
[^]:匹配任何不在括号里面的单个字符串 如[^A-Z]
|:匹配用I分割的任意字符 如: b(a|i|e)d
.:匹配任何单字符串(包括符号,数字,空格等) 如:b.d
^:指明字符串必须以表达式中的字符开头 如:^a
\:取消后面字符的特殊意义,变为普通的字符串 如: .|\
$:正则表达式字符串结束的位置 如:[A-Z][a-z]$
?!:根据后面的字符串进行预测,表达式前面的字符串,如果包含就不匹配,不包含就匹配 如:^((?![A-Z]).)*$
下面用python测试一下
import re
test_text= 'no-caps-here, $ymb01sa4e f!ne'
reObj= re.compile('^((?![A-Z]).)*$')
print(reObj.match(test_text))
输出结果:
<_sre.SRE_Match object; span=(0, 29), match='no-caps-here, $ymb01sa4e f!ne'>
表达式说明:匹配大写字母A-Z, 如果匹配到就就取反没结果,如果没有匹配到大写字母,就输出字符串。
其他正则表达式自行测试。
欢迎留言。