13

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

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

4

3 回答 3

4

听起来你想要某种正则表达式语法,它说“如果正则表达式不匹配给定字符串的任何部分,就假装它匹配以下子字符串:'foobar'”。我见过的任何正则表达式语法中都不存在这样的功能。

你可能需要这样的东西:

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

(这当然需要根据您使用的语言进行调整)

于 2009-08-24T04:27:19.793 回答
1
于 2009-08-24T04:23:58.740 回答
1

如果没有特定的语言,很难回答这个问题,但至少在 Perl 中,这样的事情是有效的:

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

1234

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

于 2009-08-24T08:10:19.890 回答