我想为我的正则表达式提供一个'default'值,所以如果找不到我要查找的东西,它将返回默认值,就像它找到它一样。
这可以使用正则表达式吗?
答案 0 :(得分:2)
听起来你想要某种正则表达式语法,说“如果正则表达式与给定字符串的任何部分不匹配,假装它匹配以下子字符串:'foobar'”。我见过的任何regexp语法都不存在这样的功能。
您可能需要这样的事情:
matched_string = string.find_regex_match(regex);
if(matched_string == null) {
string = "default";
}
(这当然需要根据您使用的语言进行调整)
答案 1 :(得分:1)
据我所知,你不能用RegExp这样做,至少用Perl兼容的正则表达式。
您可以通过自己here查看。
答案 2 :(得分:1)
如果没有特定的语言,很难回答这个问题,但至少在Perl中,这样的事情很有效:
$string='hello';
$default = 1234;
($match) = ($string =~ m/(\d+)/ or $default);
print "$match\n";
1234
不是严格的正则表达式的一部分,但避免额外的条件块。