すべてのお客様は、ccc.com のホーム デコレーション、家電製品、アウトドア ストアで 50.58 ドルから 10 ドル引きます! 2012 年 5 月 31 日まで有効"
db から上記のタイプの文字列を取得しています。文字列には $ が含まれている場合と含まれていない場合があります。$ が含まれている場合は、$ の後の数字に下線を引く必要があります。
正規表現を試してください:
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>"
最後)
スパンを使用して上記の例を取り上げます...正規表現よりも少し読みやすいかもしれないものは、単なるindexOfメソッドです
string s = "$10";
string t = (s.IndexOf('$') > 0) ? "<span style=\"text-decoration: underline\">#</span>".Replace("#",s):"<span>{0}</span>".Replace("#",s);