正規表現を学んでいますが、これは頭痛の種です。.
浮動小数点数を (または,
小数点として)一致させる必要があり、次の文字で終了する必要があります: €/g
.
有効な一致は、たとえば次のようになります。
40€/g
43.33€/g
40,2€/g
40.2€/g
38.943€/g
助けてくれてありがとう..
正規表現を学んでいますが、これは頭痛の種です。.
浮動小数点数を (または,
小数点として)一致させる必要があり、次の文字で終了する必要があります: €/g
.
有効な一致は、たとえば次のようになります。
40€/g
43.33€/g
40,2€/g
40.2€/g
38.943€/g
助けてくれてありがとう..
正規表現は次のようになります。
\d+(?:[.,]\d+)?€/g
Javascriptでは、正規表現オブジェクトとして(スラッシュをエスケープする必要があることに注意してください):
/\d+(?:[.,]\d+)?€\/g/
各部分の機能の内訳は次のとおりです。
\d+ # one or more digits
(?: # ... don't capture this group separately
[.,] # decimal point
\d+ # one or more digits
)? # make the group optional
€/g # fixed string to match
.123€/gのようなものも有効にする場合は、次を使用できます。
(?=[.,]|\d)(?:\d+)?(?:[.,]\d+)?€/g
つまり、両方の数字のグループはオプションですが、少なくとも1つは存在する必要があります(これは先読みを使用しますが、これは少し注意が必要です)。
これは「word2€/g」のような構文にも一致することに注意してください。これを防ぎたい場合は、正規表現を(?<=^|\s)
(スペースまたは文字列の先頭が前にある場合は一致)で開始し、(?=$|\s)
(スペースまたは文字列の末尾が後に続く場合は一致)で終了します。
本格的なバージョン:
(?<=^|\s)(?=[.,]|\d)(?:\d+)?(?:[.,]\d+)?€/g(?=$|\s)
\d+([.,]\d+)?€/g
うまくいくはずだと思います。