1

我正在尝试从日期中找到年份。日期格式为

"Nov.-Dec. 2010"
"Aug. 30 2011-Sept. 3 2011"
"21-21 Oct. 1997"


my regular expression is
q = re.compile("\d\d\d\d")
a = q.findall(date)

所以很明显在列表中它有两个项目,如"Aug. 30 2011-Sept. 3 2011"

["2011","2011"]

我不想重复,我该怎么做?

4

2 回答 2

1

您可以在正则表达式中使用反向引用(请参阅此处的语法):

(\d{4}).*\1

或者您可以使用当前的正则表达式并将此逻辑放入 python 代码中:

if a[0] == a[1]:
    ...
于 2012-07-31T07:52:34.930 回答
0

使用以下功能:

def getUnique(date): 
  q = re.compile("\d\d\d\d") 
  output = [] 
  for x in q.findall(date): 
     if x not in output: 
         output.append(x) 
  return output 

虽然它是 O(n^2),但对于输入列表的每个元素重复使用 not in

请参阅如何从 Python 列表中删除重复项并保持顺序?

于 2012-07-31T07:57:42.003 回答