本节介绍python使用正则表达式(regex)匹配开头和结尾。
^ | 开头匹配 |
$ | 结尾匹配 |
在python中使用re模块的match方法时,默认是从左到右的,也就是自带匹配开头,但并不匹配结尾。
例如,匹配标识符命名,(首字母不能数字,可以使用字母、数字、下划线)
re.match(r"[a-zA-Z_][a-zA-Z0-9_]*", name)
假设name为标识符名称,那么会发生一些判断错误情况,例如 my_str! ,虽然前面都匹配成功,但最后的!显然是非法字符。
当你无法明确知道字符有多长,很难确定最后的字符是否合法,那么需要做结尾检测,确定最后确实没有其他不合法字符。
在python中,re.match方法自带开头匹配,那么上述变量匹配只需要添加一个$即可
re.match(r"[a-zA-Z_][a-zA-Z0-9_]*$", name)