我想提取大写的单词,该单词在单词“ cell”或“ cells”之前的3或4出现
示例 :
简而言之,将如上所述生长的MCF-7细胞用一系列LTX-二醇或异-LTX-二醇处理。
我想从上面的示例中提取MCF-7。
我尝试使用[A-Z0-9-]+cells
,但是它返回的单元格而不是MCF-7
答案 0 :(得分:2)
此答案假设您要匹配以大写字母开头的单词,然后依次匹配1至4个其他单词,然后是cell
或cells
。我们可以尝试使用以下模式进行匹配:
([A-Z][^ ]*)(?=\s+(?:[^A-Z]\S*\s+){1,4}cells?)
模式结尾处的正向前移要求在cell
或cells
之前出现1到4个单词。
input = "Briefly, MCF-7 idential cells grown as described above were treated with a range of LTX-diol or iso-LTX-diol."
r1 = re.findall(r"([A-Z][^ ]*)(?=\s+(?:[^A-Z]\S*\s+){1,4}cells?)", input)
print(r1)
['MCF-7']