【发布时间】:2021-01-07 16:57:21
【问题描述】:
我有一个具有以下结构的数据框:
| Desc_ORF | ORF |
|---|---|
| beta-glucosidase | tb512 |
| succinate-semialdehyde dehydrogenase | tb111 |
| probable epoxide hydrolase | tb045 |
我正在使用这个函数来过滤数据框:
df.set_index('Desc_ORF').filter(regex=pattern, axis=0)
它与我正在尝试的其他模式完美配合,但我无法获得将 Desc_ORF 包含 hydro 的行过滤成 13 个字符的单词的正则表达式模式。
例如:我的代码应该保留行 succinate-semialdehyde dehydrogenase,因为它包含 dehydrogenase,它有 13 个字符并包含模式 hydro .另一方面,过滤器必须丢弃可能的环氧化物水解酶,因为虽然它包含hydro,但单词hydrolase 不是13 个字符。
| Desc_ORF | ORF |
|---|---|
| succinate-semialdehyde dehydrogenase | tb111 |
我尝试了不同的模式,最后一次尝试是:^(?={13}$)(\b\Shydro\S\b)。使用此模式,我仅按包含 hydro 的单词进行过滤,但无法获得包含 hydro 且长度为 13 个字符的单词。
【问题讨论】:
-
“regex”中的“ex”已经是“表达式”的意思;该术语是正则表达式的缩写。