更新更改的字符串:如何为python编写正则表达式,以便它提取一个术语及其定义?
更新: 正如你所料,他们改变了软件,所以我的文字也改变了 现在起作用的正则表达式不起作用了。 以下是以前的工作: r“^\”(?P.?)\”指(?P.(?!^\”?“P.?”指)。*)” 使用多行和dotall 我一直在努力把它修好 我认为消极的前瞻性部分正在失败。 我得到了第一个学期,但之后它抓住了一切 谢谢你能提供的帮助 测试字符串: “地址映射表”是指将逻辑块地址与存储在非易失性存储器阵列上的数据的物理地址相关联的数据结构。该表可以实现为索引、映射、b树、内容可寻址存储器(CAM)、二叉树和/或哈希表等。地址映射表可以互换地称为组分配表(GAT) “非对称存储介质”是指对于不同的存储操作具有不同延迟的存储介质。许多类型的固态存储介质(例如,存储器芯片)是不对称的;例如,读取操作可能比写入/编程操作快得多,写入/编程操作可能比擦除操作快得多(例如,读取存储介质可能比擦除快几百倍,比编程存储介质快几十倍)更新更改的字符串:如何为python编写正则表达式,以便它提取一个术语及其定义?,python,regex,parsing,text,Python,Regex,Parsing,Text,更新: 正如你所料,他们改变了软件,所以我的文字也改变了 现在起作用的正则表达式不起作用了。 以下是以前的工作: r“^\”(?P.?)\”指(?P.(?!^\”?“P.?”指)。*)” 使用多行和dotall 我一直在努力把它修好 我认为消极的前瞻性部分正在失败。 我得到了第一个学期,但之后它抓住了一切 谢谢你能提供的帮助 测试字符串: “地址映射表”是指将逻辑块地址与存储在非易失性存储器阵列上的数据的物理地址相关联的数据结构。该表可以实现为索引、映射、b树、内容可寻址存储器(CAM)、二叉树
“位线”是指配置为向存储器阵列的列传送电压和/或传导电流的电路结构。在一个实施例中,列包括NAND字符串或存储器字符串,并且还可以称为信道。在一个实施例中,列被称为NAND字符串,并且NAND字符串包括信道。在一个实施例中,位线连接到NAND字符串漏极端或漏极侧的NAND字符串。一个内存阵列可能有一个沿内存阵列字线的每个内存单元的位线。我有可能使正则表达式过于复杂,但下面是:
regex = re.compile(
r"^\"(?P<term>[^\"]*?)\" refers to (?P<def>(?:(?!^\"[^\"]*?\" refers to ).)*)",
re.MULTILINE | re.DOTALL)
输出:
(请注意,我只打印了定义的一个片段,但完整的定义是匹配的)
正则表达式解释
重新编译的标志:
- :使
和^
分别与行首和行尾匹配;默认值是匹配整个字符串的开头/结尾,这是我们不希望看到的$
- :使
也与换行符匹配;我们需要它来匹配多行定义
:默认情况下,*?
异常贪婪;问号使它成为现实 “”、“+”和“?”限定符都是贪婪的;他们也很般配 尽可能多的文本。有时这种行为是不可取的;如果 与b匹配,它将匹配整个字符串, 不仅如此。添加?在限定符使其执行 以非贪婪或最小的方式匹配;尽可能少的字符 将匹配。使用RE将仅匹配*
:表示一个“捕获组”,以便我们以后可以按名称捕获匹配的位——这不是必需的,但我发现使用它更容易(?p…)
:表示“非捕获组”;这只是意味着我需要用括号括起一些正则表达式,但我不希望它被当作自己的组来对待(?:…)
:其中最复杂的部分--“表达式”。这意味着匹配的文本不应包含封闭的正则表达式。这将阻止定义匹配继续到下一个术语(?!…)
- 把它放在一起:
表示匹配任何字符的零个或多个,除非字符以(?!^\“*?\”指)。)*)
开头“${some term}指“
# show what it matches:
for m in regex.finditer(contents):
groups = m.groupdict()
print("term: %s" % groups["term"])
print("%s" % ("-" * 60)) # make it clear where the term ends
d = groups["def"].strip() # regex includes blank lines
print("%s [...] %s" % (d[:20], d[-20:])) # definitions are too long to print
print("\n%s\n" % ("=" * 60))
term: Adjacent word line
------------------------------------------------------------
a word line physical [...] r a coupling effect.
============================================================
term: Bit line
------------------------------------------------------------
a circuit structure [...] of the memory array.
============================================================
term: Bit line compensation voltage
------------------------------------------------------------
a voltage supplied t [...] line is programmed.
============================================================