我有一个混合了大小写字母的字符串。我需要找到每一个由3个大写字母环绕的小写字母,并从字符串中提取出来。在
例如,ZZZaZZZ
我想提取前一个字符串中的a
。在
我编写了一个脚本,它能够提取ZZZaZZZ
,但不能单独提取{
import string, re
if __name__ == "__main__":
#open the file
eqfile = open("string.txt")
gibberish = eqfile.read()
eqfile.close()
r = re.compile("[A-Z]{3}[a-z][A-Z]{3}")
print r.findall(gibberish)
编辑:
谢谢你们的回答!我想我应该说得更具体些。我需要找到由三个完全相同的大写字母包围的小写字母,例如在我的示例ZZZaZZZ
。在
(?<=...)
表示正向后看,(?=...)
表示正向展望。在module re
您需要用括号捕获您感兴趣的字符串部分,然后用
re.MatchObject#group
访问它:你已经很接近了!阅读MatchObjects的
.group
*方法。例如,如果您的脚本以然后在第一组中捕捉所需的角色。在
要解决匹配重复字母的新限制,可以使用反向引用:
^{pr2}$读起来像:
middle
的组中。在middle
组的值。在相关问题 更多 >
编程相关推荐