【发布时间】:2018-04-22 03:58:35
【问题描述】:
我正在使用 Python 2,我有一个字符串如下。
s = """
f = function(x) sum(is.na(x))
apply(xdat, 2, f)
sum_it = function(xdat) {
ans = apply(xdat, 2, sum)
return(ans)
}
"""
我打算提取由{} 包围的sum_it 函数。我使用了下面的代码
print(re.findall(r"\s+[\w._]+ = function\(.+?\)\s*{.+?\n}\s", s, flags=re.DOTALL)[0])
这给了我错误的结果:
f = function(x) sum(is.na(x))
apply(xdat, 2, f)
sumit = function(xdat) {
ans = apply(xdat, 2, sum)
return(ans)
}
我明确表示我想要的子字符串应该在其中包含{}。但是为什么这个正则表达式不能排除字符串中明显没有{} 的开头部分呢?我怎样才能得到这个:
sumit = function(xdat) {
ans = apply(xdat, 2, sum)
return(ans)
}
【问题讨论】: