2016-03-28 9 views
0

正規表現にマッチする正規表現を使用することはできますか?正規表現を評価する正規表現

たとえば、正規表現は/(.*?)/と一致しますが、/(.?+/は一致しません。

私は実際にどのように動作しているのか、実際には必要なのか分からないので、実際の例は探していませんが、実際の例としてどのように思いついたのかを見たいと思います。

ありがとうございます!

+0

はい、それは可能だが、唯一のバランスの取れた括弧に対処するための機能を持っている正規表現エンジンに。 –

+0

正規表現が有効な場合にのみマッチするのですか? –

+0

理論的に '。*'は全ての正規表現にマッチします。ユニコードのサポートを考えてください。しかし、私はあなたがここで達成しようとしていることを理解していません。 –

答えて

0

短い回答:多分。


長い答え:あなたが望むように、より複雑になるだろう。もちろん、正規表現にはさまざまな種類があります(これらの式をどの程度深く確認したいかによっては、どの味を検証する必要があります)。また、正規表現のいくつかの味は、この表現が行うことができるより難しいもののいくつかを実行するのに十分なほど頑健ではありません。


答え推奨:は正規表現を使用しますが、使用しているどんなプログラミング言語の内部電源を収穫しないでくださいを。言い換えれば、式を使用して例外(またはその他の障害)を監視してみてください。例えば

は、JavaScriptで:たとえば

function isRegexValid(expression) { 
    try { 
     new RegExp(expression); 
     return true; 
    } catch(e) { 
     return false; 
    } 
} 

console.log(isRegexValid('(.*?)')); // true 
console.log(isRegexValid('(.?+')); // false 

、PHPで:

function isRegexValid($expression) { 
    return preg_match($expression, '') !== false; 
} 

var_dump(isRegexValid('/(.*?)/')); // true 
var_dump(isRegexValid('/(.?+/')); // false