首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求大神 C# 字符串轮换

2013-02-02 
求大神 C# 字符串替换原字符串:CSub16-18/Sub和CSub18/Sub不饱和脂肪酸与氯化2-羟基-iN/i-(2-

求大神 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-羟乙基)-<i>N</i>,<i>N</i>-二甲基乙铵的酯化物;C<Sub>16-18</Sub>/C<Sub>18</Sub>不饱和脂肪酸与甲基二乙醇胺和氯甲烷的季铵化反应产物;甲基二乙醇胺与C<Sub>16-18</Sub>和C<Sub>18</Sub>不饱和脂肪酸和氯甲烷的季铵盐化合物"; 


string r = Regex.Replace(s, @"(?is)<(Sub
[解决办法]
i)>(?<value>.+?)</\1>", delegate(Match m)
{
if (m.Groups[1].Value.ToLower() == "sub")
return Regex.Replace(m.Groups["value"].Value, ".", "$0下标");
else
return Regex.Replace(m.Groups["value"].Value, ".", "$0斜体");
});
Console.WriteLine(r);

热点排行