Как изменить позицию элемента строки в C #

Как изменить позицию элемента строки.

Пример:

... 
....

в

 ... 
...

или же.

 ... 
....

в

 ... 
...

Поэтому мне нужно изменить class="" id="" на id="" class="" в C #. Как?

Проблема не совсем определена, но если целью является просто поменять свойства «id» и «class» в теге div, то что-то вроде этого будет работать:

 public class SSwap { string str1 = @"
"; string str2 = @"
"; public SSwap() { Console.WriteLine("Before : " + str1 + "\nAfter : " + swap_string(str1)); Console.WriteLine("Before : " + str2 + "\nAfter : " + swap_string(str2)); } public string swap_string(string str) { string retStr = "
props = new Dictionary(); Match m = theRegex.Match(str); int classPos=-1, idPos=-1, pos = 0; while (m.Success) { if (m.Result("$1") == "class") classPos = pos; // Remember where class was if (m.Result("$1") == "id") idPos = pos; // Remember where id was props[m.Result("$1")] = m.Result("$2"); m = m.NextMatch(); pos++; } pos = 0; foreach (string s in props.Keys) { if (pos == classPos) // put id where class was { retStr += @"id=" + props["id"] + @" "; } else if (pos == idPos) // put class where id was { retStr += @"class=" + props["class"] + @" "; } else // put everything else where ever it appears in the dictionary { retStr += s + @"=" + props[s] + @" "; } pos++; } retStr += ">"; return retStr; } }

Конечно, это не проверка ошибок, не очень хорошо реагирует на строки, которые строго не отформатированы, как два приведенных вами примера, не терпимы к смешанному случаю и т. Д. Некоторые умные манипуляции с регулярными выражениями, вероятно, могут выполнить его в парах строк, но неясно это сложное, нечитаемое, трудно поддерживаемое регулярное выражение – это то, что вы ищете.

  public string swap_string(string str) { Regex classRegex = new Regex(@"class=""(.+?)"""); Regex idRegex = new Regex(@"id=""(.+?)"""); string classVal = classRegex.Match(str).Value; string idVal = idRegex.Match(str).Value; str = classRegex.Replace(str, "__TMPSTRING__"); str = idRegex.Replace(str, classVal); str = str.Replace("__TMPSTRING__", idVal); return str; } 

Если начальный и конечный tags не являются статическими строками, вы также можете просто заменить свойства «class» и «id» на месте. У меня создается впечатление, что есть больше подробностей, чем вы нам рассказываете, поэтому довольно сложно понять, что вам действительно нужно.

Я не могу представить себе, почему нужно было это делать, но вы можете сделать это с помощью простого бита XSLT: