1

この投稿が繰り返されている場合はお詫びしますが、広範囲に検索しましたが、機能する解決策が見つからないようです.

私はC#の正規表現に取り組んでいます。一致する基準は次のとおりです。

  • 通貨
  • ドル記号なし
  • 1000 区切りのカンマ
  • 小数
  • 小数点以下2桁のみ
  • 負の数の括弧

いくつかの例:

  1,024.12
    500.00
 10,456.23
      2.89
 (8,456.15)
     (1.63)

これは私が使用している現在のパターンです:

^\(?\d+\,?\d+[.]{1}\d{2}\)?

このパターンでうまくいくと思いますが、このパターンに一致する同じ行に数字とピリオドで構成された文字列があります。例:

123.1234.12345.123456789.12345.123 

これはかなり基本的なことですが、上記の文字列ではなく、通貨部分のみに一致させるのに問題があります。

あなたが提供できる提案をありがとう

4

6 に答える 6

3
\(?\b[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}\b\)?

ここの表現にカーソルを合わせると、説明が表示されます。

于 2013-08-30T14:08:53.753 に答える
3

$正規表現の最後に追加してみてください。

^\(?\d+\,?\d+[.]{1}\d{2}\)?$

そうすれば、少なくとも の後に正確に 2 桁の数字のみが一致し、.前述の文字列は一致しなくなります。

于 2013-08-30T13:57:12.593 に答える