読者です 読者をやめる 読者になる 読者になる

雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

文字列の先頭にある数字にマッチする正規表現

正規表現

また終了した検索へのチャチャ入れ。
question:1120987491 で提示された正規表現だと、確かに「文字列の先頭にある数字の連続」にはマッチするけど、「 00012 」(数字文字列)にもマッチしてしまうし、「 123.45 」(小数)にはマッチしないですね。
まぁ、質問には「数字にマッチ」とあるので、今回については、別に構わないのかもしれませんが。
ちなみに、前者( 0 から始まる数字文字列)にマッチして欲しくない場合は、 /^((?:[1-9][0-9]*)?[0-9])/ とする必要があるでしょう。
更に、後者(小数)にもマッチして欲しいとなると、 /^((?:[1-9][0-9]*)?[0-9](?:\.[0-9]*[1-9])?)/ 辺りでしょうか。
最早、解説なしでは何がなんだか判らなくなりそうですね。
……というか、何故、高々、小数にマッチするだけで、こんなに面倒な記述が必要なんでしょうかね。
この位、仕様でカバー( \d で小数にもマッチするとか)して欲しいところなのだけれども。