これは正規表現を使用するための良い方法ではありません。
代わりに、言語の文字列フォーマット機能を使用してください。
- テキストから数値を抽出する必要がある場合は、単純な正規表現を使用して数値を検索します。
- それらを浮動小数点または整数に変換します(必要に応じて)
- 文字列フォーマット指定子を使用して、千単位の区切り文字で出力するようにします。
たとえば、文字列から数値を抽出し、カンマの千単位の区切り文字でフォーマットするシェルトランスクリプトを次に示します。(Python 2.x)
In [12]: import re
In [13]: number_pattern = re.compile(r"\d+(.\d+)") #positive integer or floating point number
In [14]: mystring = "The size of the rocket is 3141592.6."
In [15]: number_string = number_pattern.search(mystring).group() #extract the number as a string
In [16]: number_string
Out[16]: '3141592.6'
In [18]: number = float(number_string) #convert to number
In [19]: '{:,}'.format(number) #format with thousands separator
Out[19]: '3,141,592.6'
このようにすることで、数値の範囲を簡単に削除することもできます。
if (number > 1700) or (number < 2100):
pass #do something