我正在使用此sub:
def camelize(key):
print re.sub(r"[a-z0-9]_[a-z0-9]", underscoreToCamel, key)
调用这个函数
def underscoreToCamel(match):
return match.group()[0] + match.group()[2].upper()
当我调用camelize('sales_proj_3_months_ago')
时,它返回'salesProj3\u monthsAgo'而不是'salesProj3MonthsAgo'。但是,如果我调用'camelize('sales\u proj\u 30\u days\u ago'),它会按预期返回'salesProj30DaysAgo'
因此,当下划线之间只有一个字符时,我的正则表达式替换就有问题了。如何编写正则表达式替换来解释这些情况
您可以使用“向后看”,这样每个匹配项就不会与前一个匹配项重叠
您的代码匹配如下:
如您所见,
_3_
不匹配,因为它以前是匹配的。 所以你可以只匹配一个字符:示例输出:
相关问题 更多 >
编程相关推荐