正则表达式默认值,如果没有找到
答
这听起来像你想要某种正则表达式语法,说“如果正则表达式不匹配给定字符串的任何部分假装它匹配以下子字符串:'foobar'”。我见过的任何正则表达式语法中都不存在这样的功能。
你可能需要的东西是这样的:
matched_string = string.find_regex_match(regex);
if(matched_string == null) {
string = "default";
}
(这当然需要进行调整,以您使用的语言)
答
很难回答这个问题没有一个具体的语言,但在Perl至少,像这样的工作:
$string='hello';
$default = 1234;
($match) = ($string =~ m/(\d+)/ or $default);
print "$match\n";
1234
不是正则表达式的严格一部分,但避免了额外的条件块。
错误。我希望我不必这样做。谢谢 – Zim 2009-08-24 04:28:24