在python中,我有长字符串(其中我去掉了所有的中断)
stringA = 'abcdefkey:12/eas9ghijklkey:43/e3mnop'
我要做的是在这个字符串中搜索所有出现的"key:"
,然后提取"key:"
后面的“值”。
对我来说,一个更复杂的问题是,我不知道这些属于key的值有多长(例如key:12/eas9
和key:43/e3
)。我只知道它们必须以数字结尾,而字符串的其余部分不包含任何数字。你知道吗
这就是为什么我的想法是从key
的索引加上接下来的10个字符(例如key:12/eas9g
)进行切片,然后向后操作直到isdigit()
为假。你知道吗
我尝试拆分我的初始字符串(确实包含中断):
stringA_split = re.split("\n", stringA)
for linex in stringA_split:
index_start = linex.rfind("key:")
index_end = index_start + 8
print(linex[index_start:index_end]
#then work backward
但是,插入换行符并没有任何帮助,因为从pdf到txt转换,换行符毫无意义。你知道吗
然后我该如何解决这个问题(例如,首先获取“key:”的所有索引,并将其切片到一个列表中)?你知道吗
您可以只应用一个RE,将所有键放入一个元组数组中:
执行后,您有:
我不能100%肯定我理解你对价值的定义,但我想这会让你明白你所描述的
这将返回:
\d+
#一个或多个数字。你知道吗[^\d]+
#除数字以外的所有内容(相当于[\D]
)。你知道吗[\d]
#最后一位(\d+[^\d]+[\d])
#以上表达式的组'key:(\d+[^\d]+[\d])'
#'key:'后跟组表达式如果要在结果中
key:
:相关问题 更多 >
编程相关推荐