2016-02-23 226 views

回答

3

很多事情看起來像一年,尤其是如果沒有限制的話。由於您似乎在尋找電影媒體的製作年代,我們至少可以將它限制在20世紀和20世紀的年代。

$str =~ /\b(?:19|20)[0-9]{2}\b/ 

如果您感興趣的一年總是會在括號,下面會更好:

$str =~ /\((?:19|20)[0-9]{2}\)/ 
+0

這個正則表達式是過度殺傷性的......而你剛剛複製了我的答案>。> 更不用說如果像1856這樣的一年呢? – Seekheart

+0

@Seekheart,LOL!不僅會花費我更多的時間來複制你的正則表達式,而是自己編寫它,你認爲'(0001)'和'(4444)'是幾年。還有一個細節是我的解決方案與你的最相似的是在你發佈你的前4分鐘發佈的。 – ikegami

+0

@Seekheart,電影在1856年並不存在。雖然電影早於1900年,但我認爲那些不是他將要遇到的生產日期。如果他有可能遇到這種情況,改變支持19世紀的模式將是微不足道的,也是顯而易見的。 – ikegami

0

如果你知道電影都有4位數的年括號那麼下面 將適合你的想象;)

my $test = 'spiderman (2014)'; 

if ($test =~ m/[(]+\d{4}[)]+/){ 
    print "Year is present!\n"; 
} 
+0

@ikegami怎麼樣?提供的正則表達式要求有一個括號,後面跟着4個數字,並以括號結尾... – Seekheart

+1

1234 ...一個美好的一年? – zdim