2009-08-24 7 views
3

私は正規表現に 'default'値を指定したいので、探していたものが見つからなければ、見つかったかのようにデフォルト値を返します。Regexのデフォルト値が見つからない場合

正規表現を使用してこれを行うことはできますか?

答えて

1

正規表現が、指定された文字列のどの部分とも一致しない場合、次の部分文字列 'foobar'にマッチしていると思われるような正規表現の構文が必要です。そのような機能は私が見た正規表現の構文には存在しません。

あなたは、おそらくこのような何かする必要があります:それは特定せずにこれを答えるのは難しい

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

(もちろん、この意志はあなたが使用している言語に調整する必要がある)

+1

バグ。私はそのようにする必要はないと思った。ありがとう – Zim

1

私が知る限り、少なくともPerl互換正規表現では、RegExp`sでそれを行うことはできません。

あなた自身で見ることができますhere

1

言語は、しかし、Perlで、少なくとも、このようなものは動作します:正規表現の

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

1234 

ない厳密一部が、余分な条件ブロックを回避することができます。

関連する問題