由于re.findall返回一个列表,我一直在尝试将使用regex找到的字符串拆分为列表元素。 这是我的源字符串:
vars.duh["1"] = {
oid_1 = "1"
oid_2 = "2"
oid_3 = "3"
}
到目前为止,我得到的是:
regex = re.compile(r"(?<=vars\.duh\[\"1\"\] = {)[^}]*(?=})")
return re.findall(regex, string)
这是输出:
['\n oid_1 = "1"\n oid_2 = "2"\n oid_3 = "3"\n']
似乎返回了一个列表元素,这是显而易见的,因为正则表达式匹配这一个字符串。 在创建列表之前,是否可以在正则表达式中按\n拆分,以便列表返回多个元素,如下所示:
[' oid_1 = "1"',' oid_2 = "2"',' oid_3 = "3"']
不同OID的数量是动态的,所以我恐怕不能与捕获组一起工作,对吗?有python或regex方法来处理这个问题吗? 干杯
您可以
pip install regex
然后使用见Python demo
正则表达式详细信息
(?<=vars\.duh\["1"] = {[^}]*?)
-前面紧跟着vars.duh["1"] = {
字符串的位置,然后是尽可能少的}
以外的任何0个或更多字符[^}\n]+
-1个或多个字符,而不是}
和换行符(?=[^}]*})
-一个位置后面紧跟着除}
以外的任何0个或多个字符,然后是}
李>相关问题 更多 >
编程相关推荐