2016-09-15 11 views
0

この正規表現は、任意の数字(実数または整数 - 科学的表記なし)と一致するはずです。しかし、私はカッコ内に「?:」を使用しているかどうかわかりません。 誰もがこれをいくつかの例とともに説明できますか?どうもありがとうございました。Perl正規表現 - ? d +(?:。 d +)?

+2

?:は非キャプチャグループです。参照してください:http://stackoverflow.com/questions/3512471/what-is-a-non-capturing-group –

+0

上記の複製で正規表現で '?:'が何を行うのか説明していますが、ここで使用する動機はまだ説明される。 –

答えて

1
正規表現で

?\d+(?:\.\d+)? 

括弧内のグループ内?:量がそれ以外だろう群を捕捉しないように正規表現エンジンに指示します。

括弧内の量を捕捉しないことによって、(最初のものであるべきで、そして式全体)利用可能なキャプチャグループがちょうど前に小数点を生じる桁なり、数が小数成分を有するべきです。