如果找不到正则表达式默认值

时间:2009-08-24 04:16:48

标签: regex default

我想为我的正则表达式提供一个'default'值,所以如果找不到我要查找的东西,它将返回默认值,就像它找到它一样。

这可以使用正则表达式吗?

3 个答案:

答案 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

不是严格的正则表达式的一部分,但避免额外的条件块。