2014-09-26 62 views
-5

我需要过滤一个文本,如UUUlUUU(我的意思是大写字母* 3 +小写字母+大写字母* 3)。我怎样才能实现该正则表达式?REGEX,pythonchallenge.com

我知道蟒蛇alows这样的:

re.match(\w) 

我想是这样的:

re.match([[A-Z]+[A-Z]+[A-Z]+[a-z]+[[A-Z]+[A-Z]+[A-Z]) 

查找单个字符。 (我可以添加尽可能\ w我需要)

问题是:有没有办法让大小写敏感的正则表达式得到我,什么?

p.s.我喜欢阅读文章而不是单一的解决方案。

回答

1

你想要的图案是

'^[A-Z]{3}[a-z][A-Z]{3}$' 

注意,您可以使用{}指定重复。

import re 
re.findall('^[A-Z]{3}[a-z][A-Z]{3}$' , 'UUUlUUU') 
['UUUlUUU'] 

至于 “阅读文章”,该documentation始终是一个良好的开端。

+0

这可能需要以'\ b'或'^ $'为锚定。否则,它会匹配可能不需要的“AAABBBCCCDDDxZZZZZZZZZZZZZZZZZZZ”。 – 2014-09-26 18:38:55

+0

@MichaelBerkowski好的编辑。 – CoryKramer 2014-09-26 18:42:20

+1

这是不正确的..,字边界应该放在课堂之外。 '\ b [A-Z] {3} [a-z] [A-Z] {3} \ b'它当前匹配退格字符。 – hwnd 2014-09-26 18:42:36