作者monkey12 (猴仔)
看板Python
标题[问题] Regular Expression 相关
时间Tue Sep 10 21:30:10 2013
最近刚开始玩 python 和 regular expression
有点小小的问题想请教大家
当我想要找出字串中是否有{}内的pattern的时候
MyContent{4348be18 G.E..... ......I. 0,0-0,0
#7f08005f app:id/module_name}
严谨一点我知道要每个部分去做parsing
现在先简单一点, 想判断只要 {} 内不要有不该出现的内容就算符合 (ex.不要有问号)
奇怪的是
case1
p = re.compile("{[,_
#a-zA-Z0-9:. /-]+}") 这样就可以正确抓出{}的头尾
但
case2
p = re.compile("{[
#a-zA-Z0-9:. /-_,]+}") 就抓不出{}的位置
这两种写法只差在 _ 和 , 的位置
甚至
case3
p = re.compile("{[
#a-zA-Z0-9:. /-,_]+}") 执行就会有错误
sre_constants.error: bad character range
抱歉打错了, case 3 和 case2 差在逗号的位置
想请问大家
1. case2 为什麽不行 case1却可以
2. case3 为什麽会有这样的错误
感谢感谢~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.82.125
2F:→ ya790206:关键在 - 09/10 21:36
3F:→ fjm31714:在正规表示法里[]里面如果 - 不是要代表范围最好放在最前 09/10 21:44
4F:→ uranusjr:我觉得重点是不管你放哪里最好都要 escape... 09/10 22:05
5F:→ darkgerm:-要跳脱 09/10 23:35
6F:→ ck574b027:你 case2 和 case3 用的字串不是一样吗? 09/11 00:09
※ 编辑: monkey12 来自: 210.61.82.125 (09/11 10:58)
7F:→ monkey12:感谢各位的回答 我修改了一下 case3 09/11 10:59