-1

できれば正規表現を使用して、c#を使用して特定のテキストの値を置き換える必要があります

入力:これはサンプルテキストです。$100.00の値を新しい値に置き換える必要があります。

出力:これはサンプルテキストです。$50.00の値を新しい値に置き換える必要があります。

$100から$50に交換する必要があります

注:数値は任意のサイズにする必要があります

解決策:これは私の要件で機能します

Regex.Replace("これはサンプルテキストです。$100.00の値を新しい値に置き換える必要があります。"、 "\ $ \ d +(\。\ d +)?"、 "50"、RegexOptions.IgnoreCase)

4

3 に答える 3

5

定数値を置き換える場合は、正規表現は必要ありません。

string output = text.Replace("$100", "$50");

事前に数がわからない場合は、正規表現を使用できますが、必要なパターンを把握する必要があります。ドル記号、1つ以上の数字、小数点、さらに2つの数字を照合する例を次に示します。

string output = Regex.Replace(input, @"\$\d+\.\d{2}", "$50.00");

using上記のコードが機能するには、次のステートメントが必要です。

using System.Text.RegularExpressions;

必要に応じて正規表現を変更する必要があります。一致させる必要のある入力の全範囲を検討することをお勧めします。

  • 小数点を一致させる必要がありますか?
  • カンマと一致させる必要がありますか?
  • 負の値に一致させる必要がありますか?
  • 「$1M」のように文字を一致させる必要がありますか?
  • ドル記号「10USD」の代わりに通貨コードを一致させる必要がありますか?
  • 「€100」のように他の通貨と一致させる必要がありますか?
  • 等...

これらの質問に対する回答に応じて、正規表現を調整する必要があります。

于 2012-06-14T19:16:23.810 に答える
1

これを使用できるはずです:

RegEx rex = new RegEx("\\$\\d+\\.\\d\\d");

次に、置換機能を使用します。

rex.Replace(input, "$50.00");

一致した数値に基づいて動的に置き換える値を決定できる必要がある場合は、MatchEvaluatorを確認してください。

于 2012-06-14T19:17:13.763 に答える
0

これにより、任意の値がオプションの10進値に置き換えられます。

Regex.Replace( s, @"\$\d+(\.\d+)?", "$50" )
于 2012-06-14T19:19:28.520 に答える