2014-09-12 5 views
-2

Я хотел бы добавить X между() на основе пользователя, проблема в том, что я не могу заранее знать длину строки, потому что она динамически меняется, потому что некоторые HTML-теги добавленыПереместить местоположение символа в строке

строка имеет следующую структуру

Текст .... AAA (X) BBB() CCC() DDD() .... Текст

HTML-теги могут быть доступны

Чтобы сделать мой вопрос более простым, вопрос: найдите последний() или (X), который как можно ближе к DDD. пример

Текст ... AAA() BBB() CCC() DDD> пролет стиль = "цвет = красный"> (X)>/SPAN> .... текст

Как можно без разрушения структуры текстового файла изменить местоположение X

Я пробовал почти все строковые функции заменять, удалять, подстроить ... и т. Д. Проблему в случае (x) в конце и если (x) где-то еще в файле, как я могу узнать положение последнего() с или без X

EDIT:

возможно Ввод может быть:

<p> 
    <span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:black'>AAA() - BBB() - CCC() - DDD</span><b><span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:red'>(X)</span></b> 
    <span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:black'> 
     <o:p></o:p> 
    </span> 
    </p> 

Нет выхода я просто хочу знать местоположение последнего(), который в этом случае положение(), который содержит (х) после того, как красный '>

+4

Не совсем понятно, пожалуйста, вы можете разместить вход и выход отдельно? –

+0

Хорошо, я сделаю это – Maro

+0

Возможно, замените '()' на '(X)'? :/ – Reniuz

ответ

2

я хотел бы найти позицию последнего() с или без X

Находит позицию последнего () и положением последних (X), затем найдите, какой из них больше.

string input = "Text .... AAA (X) BBB() CCC() DDD() .... Text"; 

int withXPos = input.LastIndexOf("(X)"); 
int withoutXPos = input.LastIndexOf("()"); 

int lastPos = Math.Max(withoutXPos, withXPos); 
+0

Спасибо большое gunr2171 Мне жаль, что это было так просто,() или (X) также можно найти в тексте позже в документе, поэтому он каким-то образом должен быть связан с DDD, спасибо для вас effots +1 у меня – Maro

+0

Если есть больше ограничений, вам нужно их опубликовать. – gunr2171

+0

больше нет ограничений (найдите последний() или (X), который после DDD – Maro

1

использованием String.LastIndexOf

var [email protected]"<p><span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:black'>AAA() - BBB() - CCC() - DDD</span><b><span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:red'>(X)</span></b> 
        <span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:black'><o:p></o:p></span></p>"; 

var withx = test.LastIndexOf("(X)"); 
var without = test.LastIndexOf("()"); 
+0

Thnkx humpty dumpty, как я написал ниже, я надеюсь, что это было так просто () или (X) также можно найти в тексте позже в документе, поэтому его нужно как-то связать к DDD в любом случае, спасибо за вас effots +1 от меня – Maro

+0

@Maro: Нет pr oblem, в следующий раз, когда вы зададите вопрос, попробуйте поместить какой-то код, который вы пытались избежать нисходящих голосов !! –

+0

Спасибо, я сделаю это – Maro

Смежные вопросы