我在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)