10-20など、正数-正数という入力をし
ある文字列に10〜20などが入っていた場合にはその文字列を表示しようとしているのですが

自分ではスマートなやり方が思いつかなかったので
まず数字-数字に対して([0-9]{1,2})-([0-9]{1,2})とヒットさせ
前括弧をprematch
後括弧をaftmatchとして
for(int i=prematch; i<=aftmatch;i++)
と回して
10|11|12|...|20
と力技で置換し

それを文字列に対して正規表現でマッチさせています

何か良いスマートな方法はありませんか。