2016-11-01 3 views
0

Я хочу, чтобы проверить, является ли строка содержать следующий форматКак искать текст для этого формата строки?

[QUOTE] 
    Test sentence 
    [/QUOTE] 

Если это так, то я сделаю это.

  string description = dr["description"].ToString(); 
      description = description.Replace("[QUOTE]", "<blockquote>"); 
      description = description.Replace("[/QUOTE]", "</blockquote>"); 

Все в порядке.

но как об этом?

[QUOTE=Axio;26] 
Test sentence 
[/QUOTE] 

Также в здесь я хочу добавить BLOCKQUOTE теги и как Вы хотите, чтобы отобразить этот текст внутри этих тегов

«Orginall вывешенные Axio. Нажмите здесь»

Когда вы нажмете «Click HERE», вы перейдете на эту должность. Так что должно быть гиперссылкой»26 является идентификатор сообщения

Как это сделать

ответ

0

Многие из способов сделать это, например:?

string des = dr["description"].ToString().Replace("\n", ""); 
string info[] = des.SubString(des.IndexOf('=') + 1, des.IndexOf(']')).Split(';'); 
string name = info[0]; 
string id = info[1] 
string sentence = des.SubString(des.IndexOf(']') + 1, des.LastIndexOf('[')); 

когда вы получили это, вы знаете, что делать Я написал это вручную, вам может потребоваться настроить его самостоятельно (позиция подстроки не обязательно, если нужно добавить/под 1).

+0

Даже когда вы добавляете так, что у вас нет исключения ArgumentOutOfRange, вам нужно вычесть начальный индекс, чтобы получить подстроку. И, вероятно, используйте первое появление ']'. В противном случае вы завершаете что-то вроде '[0]:« Axio »' '[1]:« 26] Orgina »' –

+0

oops, copy from last line, забыли изменить. – Bucketcode

1

Вы можете использовать регулярное выражение для соответствия тому, что находится в [QUOTE], и затем преобразовать его с помощью Split на точку с запятой. Что-то вроде этого:

 var regexPattern = @"\[QUOTE[=]{0,1}([\d\w;]*)\](.|\r|\n)*\[/QUOTE\]"; 
     var test1 = @"[QUOTE=Axio;26] 
      Test sentence 
      [/QUOTE]"; 
     var test2 = @"[QUOTE] 
      Test sentence 
      [/QUOTE]"; 

     var regex = new Regex(regexPattern); 

     var match = regex.Match(test1); 
     if (match.Success) 
     { 
      if (match.Groups.Count > 1) //matched [QUOTE=...] 
       match.Groups[1].Value.Split(';').ToList().ForEach(s => Console.WriteLine(s)); 
      else //matched [QUOTE].. 
       Console.WriteLine("Matched [QUOTE]"); 
     } 
     else Console.WriteLine("No match"); 
     Console.Read(); 
0
//Get the description text 
var description = "[QUOTE=Axio;26]Orginall posted by Axio. Click here[/QUOTE]"; 
//Get your id 
var id = description.Substring(description.IndexOf(";") + 1, description.IndexOf("]") - (description.IndexOf(";") + 1)); 

//replace with anchor with id and <blockquotes/> 
var editedstring = description 
    .Remove(description.IndexOf("["), description.IndexOf("]") + 1) 
    .Insert(0, "<blockquote><a href=\"#" + id + "\">") 
    .Replace("[/QUOTE]", "</a></blockquote>"); 

Результат:

<blockquote><a href="#26">Orginall posted by Axio. Click here</a> </blockquote> 
Orginall отправленный Axio. Нажмите здесь

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

  • Нет связанных вопросов^_^