5

http://regexcrossword.com/で面白い正規表現クロスワードを実行したところ、(.)+ や (.)* など、グループの数量化の意味がわからないことがわかりました。

http://ole.michelsen.dk/tools/regex.htmlで試してみましょう。JavaScriptと PHP 正規表現エンジンが提供されています。

合わせる文字列は「トロロロ!」(引用符なし)。(「グローバルマッチ」をオンにして何かが変更された場合、PHP モードでは何も変更されていないため、プライミングされたバージョン、つまり JS として追加されます。)

JS,  (.)+ => 0: Trololo! 1: ! 
JS', (.)+ => 0: Trololo! 
PHP, (.)+ => 0: Trololo! 0: ! 
JS,  (.)* => 0: Trololo! 1: ! 
JS', (.)* => 0: Trololo! 
PHP, (.)* => 0: Trololo! 1: 0: ! 1: 
JS,  (.){5} => 0: Trolo 1: o 
JS', (.){5} => 0: Trolo 
PHP, (.){5} => 0: Trolo 0: o 
JS,  (.){4} => 0: Trol 1: l 
JS', (.){4} => 0: Trol 1: olo! 
PHP, (.){4} => 0: Trol 1: olo! 0: l 1: ! 

これのセマンティクスとは何か、規範的な答えはありますか?

4

1 に答える 1