我在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)
但它不适用于不同类型的关键字。
答案 0 :(得分:1)
[A-Z]+(?:_[A-Z]+)*_[A-Z0-9]+
您可以使用它来捕获中间的变量_[A-Z]
。See demo
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)
答案 1 :(得分:0)
我探索了更多选项并想出了
lst = re.findall(' \ S + _ \ S +',test_str)
按预期工作.....