Regex 正则表达式:如何删除相同字符串的重复?

Regex 正则表达式:如何删除相同字符串的重复?,regex,python-2.7,Regex,Python 2.7,我想从日期开始找年份。 日期的格式如下所示 "Nov.-Dec. 2010" "Aug. 30 2011-Sept. 3 2011" "21-21 Oct. 1997" 很明显,在列表中,它有两个字符串项,如“2011年8月30日-2011年9月3日” 我不想重复,我该怎么做?您可以在正则表达式中使用反向引用(参见语法): 或者,您可以使用当前的正则表达式并将此逻辑放入python代码中: if a[0] == a[1]: ... 您可以在正则表达式中使用backreference

我想从日期开始找年份。 日期的格式如下所示

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

很明显,在列表中,它有两个字符串项,如
“2011年8月30日-2011年9月3日”


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

您可以在正则表达式中使用反向引用(参见语法):

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

if a[0] == a[1]:
    ...

您可以在正则表达式中使用backreference(参见语法):

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

if a[0] == a[1]:
    ...

使用以下功能:

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


请参见使用以下功能:

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


请看

对不起,我不能给你超过+1的答案,然后请勾选旁边的绿色V,将他的答案标记为正确!对不起,我不能给你超过+1的答案。然后,请勾选旁边的绿色V,将他的答案标记为正确!
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