python中正则表达式的问题

时间:2017-09-11 11:38:09

标签: python regex

我需要这些输出:

  

nuncamás

  

nunca [ADV + NEG]más[ADV + comp]

我的剧本:

import re

corpus = "Me[Unknown] temo[Unknown] que[Unknown] buscare[Unknown] 
otras[Unknown] opciones[Unknown] esta[Unknown] nunca[ADV+NEG+CIRC] 
más[ADV+comp+CIRC]"

for etq in corpus:
    regex = ".*\[ADV\+NEG\+.*\]"
    results = re.findall(regex, corpus)
    print(results)

我的结果:

  

[]

     

[]

     

[]

     

[]

     

[]

     

[]

     

[]

     

[]

1 个答案:

答案 0 :(得分:0)

这很奇怪。

它应匹配整个字符串,并将整个字符串返回字符串corpus中的字符数。

正则表达式.*\[ADV\+NEG\+.*\]匹配整个corpus

这就是你要找的东西吗?

import re

corpus = "Me[Unknown] temo[Unknown] que[Unknown] buscare[Unknown] otras[Unknown] opciones[Unknown] esta[Unknown] nunca[ADV+NEG+CIRC] más[ADV+comp+CIRC]"
result1 = re.findall(r"(\w+)\[ADV\+.*?\]", corpus)
result2 = re.findall(r"(\w+\[ADV\+.*?)\+.*?\]", corpus)
print(" ".join(result1))
print(" ".join([x + "]" for x in result2]))