python使用regex提取大写单词

2024-05-16 16:29:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想提取大写的单词,出现在单词“cell”或“cells”之前3或4处

示例 地址:

Briefly, MCF-7 idential cells grown as described above were treated with a range of LTX-diol or iso-LTX-diol.

我想从上面的例子中提取MCF-7。你知道吗

我试着用[A-Z0-9-]+cells,但它的返回细胞,而不是MCF-7


Tags: 示例地址ascell单词abovecells大写
1条回答
网友
1楼 · 发布于 2024-05-16 16:29:36

这个答案假设您要匹配一个以大写字母开头的单词,大写字母后面依次是1到4个其他单词,然后是cellcells。我们可以尝试使用以下模式进行匹配:

([A-Z][^ ]*)(?=\s+(?:[^A-Z]\S*\s+){1,4}cells?)

模式末尾的正向先行断言了在cellcells之前出现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']

相关问题 更多 >