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)

明らかにリストには、次のような文字列の2つのアイテムがあります"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 

ただし、入力リストの各要素に対して not in を繰り返し使用すると、O(n^2) になります。

Python リストから重複を削除して順序を維持する方法を参照してください。

于 2012-07-31T07:57:42.003 に答える