如何在Python中的括号之间提取值

时间:2018-10-22 18:13:01

标签: python

我有一个很大的字符串,我正在尝试解析它。我想做的是读取clk(时钟)值。是否有任何方法可以以Python方式提取此文本({[]}之间的文本?

  1. e4 {[%clk 1:23:29]} c5 {[%clk 1:30:39]} 2. Nf3 {[%clk 1:23:32]} d6 {[%clk 1:30:58]} 3. d4 {[%clk 1:23:50]} cxd4 {[%clk 1:31:21]}

目标是获取clk值并将其存储在列表中。

1 个答案:

答案 0 :(得分:2)

假设其他方括号值中没有方括号值,那么使用正则表达式捕获每个方括号值就很容易了:

import re

s = """1. e4 {[%clk 1:23:29]} c5 {[%clk 1:30:39]} 2. Nf3 {[%clk 1:23:32]} d6
{[%clk 1:30:58]} 3. d4 {[%clk 1:23:50]} cxd4 {[%clk 1:31:21]}"""

results = re.findall(r"{\[%clk (.*?)\]}", s)
print(results)

结果:

['1:23:29', '1:30:39', '1:23:32', '1:30:58', '1:23:50', '1:31:21']

正则表达式模式的简要说明:

{       #literal curly bracket
\[      #literal square bracket
%clk    #literal "%clk "
(.*?)   #match any number of characters, and capture them for the output
\]      #literal square bracket
}       #literal curly bracket