2014-10-29 2 views
1

Имейте некоторый эксперимент по тому, как я могу получить конкретный индекс строки в richTextBox Control.Получение lastIndex с валидацией

сценарий: Мне нужно найти LastIndex из #>, но оленья кожа матч с ##>

причине (2) ## заблокирует #

Вот что я начал сейчас:

string text = richTextBox1.Text; 
int lastIndexOffragment = text.LastIndexOf('#>'); 

Q : Как я могу найти настоящий последний индекс #> с подтверждением, что его не ##>

--- обновлено

Примечание: если это возможно, не цикл (например, Еогеасп или forloop)

образец строки в РТБ:

#> 000010 IDENTIFICATION DIVISION. 
#> 000020 PROGRAM-ID. K1. 
##> 000030 
#> 000040 ENVIRONMENT DIVISION. 
#> 000050 INPUT-OUTPUT SECTION. 
##> 000060 FILE-CONTROL. 
#> 000070  SELECT OPTIONAL LOGIN-TABLE1 
##> 000080  ASSIGN TO "LL22" 
##> 000090  ORGANIZATION IS INDEXED 
verified #> 000100  RECORD KEY IS LPASSWD 
done ##> 000110  ACCESSING MODE IS COMPLETED . 

результат должен быть индекс #> после слова verified

+0

можно показать здесь образец строки? – Shell

+0

@Shell Я думаю, что это означает, что '' aaa #> ##> ". LastIndexOf (" #> ")' is '8', но OP нуждается в' 4'. – artm

+0

@ Шелл применяется. это строка, которую я использовал для тестирования. – Elegiac

ответ

0

Я знаю, что это очень некрасиво метод, но, я думаю, что это будет очень легко и не complecated.

str = "your string"; 

int iLastIndex = str.Replace("##>", "^^>").LastIndexOf("#>"); 

вы можете использовать любой символ вместо ^.

+0

, что делает трюк. спасибо @Shell: P – Elegiac

0

Попробуйте регулярное выражение для точного соответствия:

int lastIndexOffragment = System.Text.RegularExpressions.Regex.Match(richTextBox1.Text, @"\#>\W").Index; 

Update:

System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex(@"\#>\W"); 

System.Text.RegularExpressions.MatchCollection matches = rx.Matches(richTextBox1.Text); 
int lastIndex = matches[matches.Count - 1].Index; 
+0

соответствует ли это ##>? – Elegiac

+0

@Elegiac Смотрите обновление, чтобы получить последний индекс с регулярным выражением. – artm

+0

его работая, но проблема была в том, что он также соответствовал ##> – Elegiac

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