当前位置:  开发笔记 > 编程语言 > 正文

在破折号后使用逗号而不是反转时,正则表达式中的"字符范围错误"

如何解决《在破折号后使用逗号而不是反转时,正则表达式中的"字符范围错误"》经验,为你挑选了1个好方法。

我在python控制台中尝试过这个命令:

re.match('^\<.+\>([\w\s-,]+)\<.+\>$', 'Carrier-A')

我得到了:

Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python2.7/re.py", line 141, in match
    return _compile(pattern, flags).match(string)
  File "/usr/lib/python2.7/re.py", line 251, in _compile
    raise error, v # invalid expression
sre_constants.error: bad character range

但是当我使用时:

re.match('^\<.+\>([\w\s,-]+)\<.+\>$', 'Carrier-A')

没有错误返回.

关于字符序列我应该考虑什么?



1> DYZ..:

-在方括号内使用时,破折号[]具有特殊含义:它定义了一系列字符.例如,[\s-,]是指"从任何字符\s,"(这是不可能的).但是,如果破折号是方括号中的第一个或最后一个字符,则它没有特殊含义.这就是你的第二个正则表达式是正确的原因.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有