我在Windows 7中使用python 3.4。
我有一张Excel工作表,其中每个单元格中都有数据。
数据是不同种类的。两个例子:-"Qwert A_B_C_1 uiop""Qwert A_X_Y_Z uiop"

综上所述,我必须提取用CAPS编写的关键字,在第一个单词之后紧跟着下划线。一旦遇到空白,提取应停止

我已经尝试过这样的事情,但

x =  "QWERT A_B_C_1 UIOP"
se = re.findall("[A-Z]+_[A-Z]+_[A-Z]+_[0-9A-Z]+",x)


但这不适用于不同类型的关键字。

最佳答案

[A-Z]+(?:_[A-Z]+)*_[A-Z0-9]+


您可以使用它来捕获介于两者之间的变量_[A-Z]

import re
p = re.compile(r'[A-Z]+(?:_[A-Z]+)*_[A-Z0-9]+')
test_str = "QWERT A_B_C_1 UIOP\nQwert A_X_Y_Z uiop"

re.findall(p, test_str)

09-03 17:44