# to match your pattern with a lowercase letter after
pat1 = re.compile('([A-Z]{3}[a-z]{1}[A-Z]{3})([a-z]+)')
# should yield what you need
pat1.search('sDdDSADadasAHHdHSAsdsagfGoHHHfHHHH').group(1)
# as an explanation for group capture, run this:
mymatch = pat1.search('sDdDSADadasAHHdHSAsdsagfGoHHHfHHHH')
mymatch.group(0)
mymatch.group(1)
mymatch.group(2)
您可以使用组来确保在获取模式的同时也在其周围进行匹配:
可以使用lookarounds在3个大写字符之前和之后声明非大写字符。你知道吗
(?<![A-Z])
负的lookback,在左边断言no uppercase char[A-Z]{3}
匹配3个大写字符A-Z[a-z]
匹配单个小写字符(注意可以省略{1}
)[A-Z]{3}
匹配3个大写字符(?![A-Z])
负向前看,在右边不断言大写字符Regex demo
也许吧
那就行了。你知道吗
Demo
我想要实现这个模式,我们可能需要安装
regex
模块否则,我认为模式in this answer将是一个更好的选择,您可以使用
re
模块来实现它:测试
输出
如果您希望简化/修改/探索表达式,在regex101.com的右上面板中已经解释过了。如果您愿意,还可以在this link中查看它与一些示例输入的匹配情况。你知道吗
正则表达式电路
jex.im可视化正则表达式:
相关问题 更多 >
编程相关推荐