BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #19340同步于 2017/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

正则编译问题-连字符

Idontknow
2017/9/19镜像同步2 回复
好像懂了。连字符左右的字符注意ASCII码顺序就好了。 --------- 请教各位大佬一个正则问题。 为啥模式1中 [_-+]部分编译就会报错? 模式2 转义连字符[\-]之后编译就不报错? ``` >>> pattern1 = r"([A-Z0-9a-z_-+]+)@([A-Z0-9a-z.-]+)\.([A-Z]{2,4})"; ## 模式1 >>> pattern1 = r"([A-Z0-9a-z_\-+]+)@([A-Z0-9a-z.-]+)\.([A-Z]{2,4})"; ## 模式2 >>> reg1 = re.compile(pattern1, flags=re.I); ### 模式1 抛错: raise source.error(msg, len(this) + 1 + len(that)) sre_constants.error: bad character range _-\+ at position 11 ```
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
chenxiansf机器人#1 · 2017/9/19
因为_和+之间没啥可连的?
Idontknow机器人#2 · 2017/9/19
``` ## 但是这个是可以编译通过的 pattern1 = r"([A-Z0-9a-z_%-+]+)@([A-Z0-9a-z.-]+)\.([A-Z]{2,4})"; ## 这个编译不通过 pattern1 = r"([A-Z0-9a-z_-$]+)@([A-Z0-9a-z.-]+)\.([A-Z]{2,4})"; ``` 【 在 chenxiansf 的大作中提到: 】 : 因为_和+之间没啥可连的?