2009-08-24 114 views

回答

1

這聽起來像你想要某種正則表達式語法,說「如果正則表達式不匹配給定字符串的任何部分假裝它匹配以下子字符串:'foobar'」。我見過的任何正則表達式語法中都不存在這樣的功能。

你可能需要的東西是這樣的:

matched_string = string.find_regex_match(regex); 
if(matched_string == null) { 
    string = "default"; 
} 

(這當然需要進行調整,以您使用的語言)

+1

錯誤。我希望我不必這樣做。謝謝 – Zim 2009-08-24 04:28:24

1

據我所知,你不能用RegExp做到這一點,至少在Perl Compatible Regular Expressions中是這樣。

你可以看到你自己here

1

很難回答這個問題沒有一個具體的語言,但在Perl至少,像這樣的工作:

$string='hello'; 
$default = 1234; 
($match) = ($string =~ m/(\d+)/ or $default); 
print "$match\n"; 

1234 

不是正則表達式的嚴格一部分,但避免了額外的條件塊。