不定形の文字列中の数字部分を抽出してちょっと計算したいんだけど、 1000桁みたいなint型やdouble型に変換したらややこしくなるレベルの桁数が出てきたら 面倒くさくなるからそれは除いて検索しようってなったときにちょっとハマったからメモ。 \d{1,5}とかやっても1234567890とかが出てきたら12345と67890で分かれてマッチしちゃうし どうしようって思ってたところ、 $number_text = '999999999999999999 19 18782 999999999999999999999 18782 777 999999999999999999999999 37564 1hoge22bar333foo4444fuga55555piyo666666bora7777777toto88888888'; $pattern = '/(?<!\d)\d{1,5}(?!\d)/