我想为我的正则表达式提供一个“默认”值,所以如果找不到我要找的东西,它会像找到它一样返回默认值。
这可以使用正则表达式吗?
听起来你想要某种正则表达式语法,它说“如果正则表达式不匹配给定字符串的任何部分,就假装它匹配以下子字符串:'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
严格来说不是正则表达式的一部分,但避免了额外的条件块。