平成30/ 2018-10-24 06:42
正規表現 ?: ?:

([0-9]+)
のように丸括弧の値を
$1
とかに保存しないようにするときの命令。

(?:[0-9]+) のように使う。


( Thanks. )
正規表現メモ ?:
http://webcache.googleusercontent.com/search?q=cache:d3UtzIfZ9eYJ:maeyan.blogspot.com/2008/07/blog-post_9966.html+&cd=3&hl=ja&ct=clnk&gl=jp
でも、この手のシチュエーションで括弧内の
情報が知れると嬉しいなんてことはまずない。
つまり、使いもしないのに$1としてメモリを消費したことになる。
この無駄なメモリ消費を回避するにはどうすればよいかと言うと
最初の括弧の後に?:(クエスチョンマークとコロン)を並べるとメモリしなくなるそうな。

試してみる。
$_ = "javascript";
print "\$1=$1\n" if(/java(?:script)?/);
print "\$1=$1\n" if(/java(script)?/);


実行結果
$1=
$1=script