正規表現に「デフォルト」値を指定したいので、探していたものが見つからない場合は、見つかったかのようにデフォルト値が返されます。
これは正規表現を使用して行うことができますか?
「regexpが指定された文字列のどの部分にも一致しない場合は、次のサブ文字列に一致したふりをします:'foobar'」というある種の正規表現構文が必要なようです。このような機能は、私が見たどの正規表現構文にも存在しません。
おそらく次のようなものが必要になります。
matched_string = string.find_regex_match(regex);
if(matched_string == null) {
string = "default";
}
(もちろん、これは使用している言語に合わせて調整する必要があります)
私の知る限り、少なくともPerl互換の正規表現では、RegExp`sではそれを行うことはできません。
ここで自分で見ることができます。
特定の言語なしでこれに答えるのは難しいですが、少なくともPerlでは、次のようなものが機能します。
$string='hello';
$default = 1234;
($match) = ($string =~ m/(\d+)/ or $default);
print "$match\n";
1234
厳密には正規表現の一部ではありませんが、余分な条件付きブロックを回避します。