2017-04-07 24 views
1

数値と 'KGS'の間に数字を入れて抽出したいのですが(数字と 'KGS'の間にスペースは入れません)、文字列には 'KGS'無視されるべきである例:。。数字の後ろに 'KGS'をつける正規表現

This is a 123 sample (500KGS) string. 

500が抽出されなければならない

答えて

2

ここではあまり厳密ではないパターンを使用することをお勧めします.b utの値を抽出します。今、あなたの正規表現56578.56または52,456のような値を抽出し、2,400.56のような値は一致しません。

使用

/\d[\d.,]*(?=\s*KGS)/i 

regex demoを参照してください。または、キャプチャあり:

/(\d[\d.,]*)\s*KGS/i 

結果はグループ1です。another demoを参照してください。

\d[\d.,]*は数字と一致し、その後0またはそれ以上の数字.または,と一致します。

修飾子/iは正規表現の大文字小文字を区別しません。正規表現のフレーバーに応じて、この修飾子のインラインバージョン(?i)を使用することもできます。パターン開始点に置くだけです。

+1

どちらも確かにトリックです。再度、感謝します。 – PaulP

1

をここに答えます: (\ D +(?:[。、]?\ D +))?\ sの(KGS)

+0

または['\ d [\ d *](?= \ s * KGS)'](https://regex101.com/r/g7InDO/1) –

+0

ありがとうPan Wiktor。 'KGS'の大文字と小文字を区別しないようにする簡単な方法はありますか? – PaulP

+1

絶対に、 '/ \ d [\ d。、] *(?= \ s * KGS)/ i'または'(?i)\ d [\ d。] *(?= \ s * KGS) ' –

関連する問題