我是python的新手。在给出像这样的字符串列表的情况下,有人可以帮助我如何创建正则表达式:
test_string = "pero pero CC
tan tan RG
antigua antiguo AQ0FS0
que que CS
según según SPS00
mi mi DP1CSS
madre madre NCFS000"
如何返回这样的元组:
> ([madre, NCFS00],[antigua, AQ0FS0])
我想用test_string返回带有相关标签的单词,这就是我所做的:
# -- coding: utf-8 --
import re
#str = "pero pero CC " \
"tan tan RG " \
"antigua antiguo AQ0FS0" \
"que que CS " \
"según según SPS00 " \
"mi mi DP1CSS " \
"madre madre NCFS000"
tupla1 = re.findall(r'(\w+)\s\w+\s(AQ0FS0)', str)
print tupla1
tupla2 = re.findall(r'(\w+)\s\w+\s(NCFS00)',str)
print tupla2
输出如下:
[('antigua','AQ0FS0')] [('madre','NCFS00')]
这个输出的问题是,如果我沿着test_string
传递它,我需要保留标签的“顺序”或“出现”(即我只能打印一个元组,当且仅当它们有以下顺序:AQ0FS0和NCFS000换句话说:女性形容词,女性名词)。
答案 0 :(得分:1)
^([a-zA-Z]+)\s+[a-zA-Z]+\s+([\w]+(?=\d$)\d)
不知道这个选择的基础,但你仍然可以得到它。只需抓住捕获。不要忘记设置标志g
和m
。见演示。