1

正規表現を学んでいますが、これは頭痛の種です。.浮動小数点数を (または,小数点として)一致させる必要があり、次の文字で終了する必要があります: €/g.

有効な一致は、たとえば次のようになります。

  • 40€/g
  • 43.33€/g
  • 40,2€/g
  • 40.2€/g
  • 38.943€/g

助けてくれてありがとう..

4

3 に答える 3

6

正規表現は次のようになります。

\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)
于 2012-07-24T11:57:24.360 に答える
2
\d+([.,]\d+)?€/g

うまくいくはずだと思います。

于 2012-07-24T11:57:24.507 に答える
0
于 2012-07-24T11:57:37.557 に答える