数値と 'KGS'の間に数字を入れて抽出したいのですが(数字と 'KGS'の間にスペースは入れません)、文字列には 'KGS'無視されるべきである例:。。数字の後ろに 'KGS'をつける正規表現
This is a 123 sample (500KGS) string.
500
が抽出されなければならない
数値と 'KGS'の間に数字を入れて抽出したいのですが(数字と 'KGS'の間にスペースは入れません)、文字列には 'KGS'無視されるべきである例:。。数字の後ろに 'KGS'をつける正規表現
This is a 123 sample (500KGS) string.
500
が抽出されなければならない
ここではあまり厳密ではないパターンを使用することをお勧めします.b utの値を抽出します。今、あなたの正規表現56
、578.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)
を使用することもできます。パターン開始点に置くだけです。
をここに答えます: (\ D +(?:[。、]?\ D +))?\ sの(KGS)
または['\ d [\ d *](?= \ s * KGS)'](https://regex101.com/r/g7InDO/1) –
ありがとうPan Wiktor。 'KGS'の大文字と小文字を区別しないようにする簡単な方法はありますか? – PaulP
絶対に、 '/ \ d [\ d。、] *(?= \ s * KGS)/ i'または'(?i)\ d [\ d。] *(?= \ s * KGS) ' –
どちらも確かにトリックです。再度、感謝します。 – PaulP