3

すべてのお客様は、ccc.com のホーム デコレーション、家電製品、アウトドア ストアで 50.58 ドルから 10 ドル引きます! 2012 年 5 月 31 日まで有効"

db から上記のタイプの文字列を取得しています。文字列には $ が含まれている場合と含まれていない場合があります。$ が含まれている場合は、$ の後の数字に下線を引く必要があります。

4

2 に答える 2

7

正規表現を試してください:

Regex.Replace(str, @"(?<=\$)\d+(\.\d+)?", "<u>$0</u>");

出力例:

"4.5"     -> "4.5"         (untouched)
"4"       -> "4"           (untouched)
"$4.5"    -> "$<u>4.5</u>"
"$4"      -> "$<u>4</u>"

ただし、 は推奨されていないため、クラスを使用するか、インライン スタイルをディレクティブuで使用することを検討する必要があります。<span>text-decoration: underline

Regex.Replace(str, @"(?<=\$)\d+(\.\d+)?", 
  "<span style=""text-decoration: underline"">$0</span>");

それは、このテキストを入れる囲み要素が何であるかによって異なります。それも である場合、それらをネストすることはできないため、最初の要素spanを閉じる必要があります (単に"</span>"置換文字列の開始 (3 番目の引数) と"<span>"最後)

于 2012-05-10T12:42:35.927 に答える
0

スパンを使用して上記の例を取り上げます...正規表現よりも少し読みやすいかもしれないものは、単なるindexOfメソッドです

        string s = "$10";
        string t =  (s.IndexOf('$') > 0) ? "<span style=\"text-decoration: underline\">#</span>".Replace("#",s):"<span>{0}</span>".Replace("#",s);
于 2012-05-10T17:36:17.367 に答える