求大神 C# 字符串替换
原字符串:C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸与氯化2-羟基-<i>N</i>-(2-羟乙基)-<i>N</i>,<i>N</i>-二甲基乙铵的酯化物;C<Sub>16-18</Sub>/C<Sub>18</Sub>不饱和脂肪酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸和氯甲烷的季铵盐化合物
想要的字符串:C1下标6下标-下标1下标8下标和C1下标8下标不饱和脂肪酸与氯化2-羟基-N斜体-(2-羟乙基)-N斜体,N斜体-二甲基乙铵的酯化物;C1下标6下标-下标1下标8下标/C1下标8下标不饱和脂肪酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C1下标6下标-下标1下标8下标和C1下标8下标不饱和脂肪酸和氯甲烷的季铵盐化合物
求大神贴代码 或思路啊....
字符串
c#
大神
------解决方案-------------------- string str = "C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸与氯化2-羟基-<i>N</i>-(2-羟乙基)-<i>N</i>,<i>N</i>-二甲基乙铵的酯化物;C<Sub>16-18</Sub>/C<Sub>18</Sub>不饱和脂肪酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸和氯甲烷的季铵盐化合物";
str = Regex.Replace(str, "<Sub>(.*?)</Sub>", delegate(Match m)
{
return string.Join("", m.Groups[1].Value.Select(t => t+"下标").ToArray());
});
------解决方案--------------------using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string s = "C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸与氯化2-羟基-<i>N</i>-(2-羟乙基)-<i>N</i>,<i>N</i>-二甲基乙铵的酯化物;C<Sub>16-18</Sub>/C<Sub>18</Sub>不饱和脂肪酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸和氯甲烷的季铵盐化合物";
s = Regex.Replace(s, @"\<Sub\>([\w-]+)\<\/Sub\>", x => string.Join("", x.Groups[1].Value.ToCharArray().Select(y => y.ToString() + "下标").ToArray()), RegexOptions.None);
s = Regex.Replace(s, @"\<i\>([\w-]+)\<\/i\>", x => string.Join("", x.Groups[1].Value.ToCharArray().Select(y => y.ToString() + "斜体").ToArray()), RegexOptions.None);
Console.WriteLine(s);
}
}
}
C1下标6下标-下标1下标8下标和C1下标8下标不饱和脂肪酸与氯化2-羟基-N斜体-(2-羟乙基)
-N斜体,N斜体-二甲基乙铵的酯化物;C1下标6下标-下标1下标8下标/C1下标8下标不饱和脂肪
酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C1下标6下标-下标1下标8下
标和C1下标8下标不饱和脂肪酸和氯甲烷的季铵盐化合物
Press any key to continue . . .
------解决方案-------------------- string s = "C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸与氯化2-羟基-<i>N</i>-(2-羟乙基)-&l