2016-09-02 3 views
0

Мне нужно заменить «@» на «-» в строке. Это просто, но мне также нужно заменить несколько «@@@@@» одним единственным «-». Любые идеи о том, как сделать последний с ASP. Вот пример:Как удалить повторяющиеся конкретные символы

входной строки: @ Introducción Лос Esquemas Algorítmicos: Apuntes у colección де problemas. Отчет БИС-97-6-T @@@@@@@@ 09/30/1997 @@@@@ TRE @

Желаемый результат: -Introducción Лос Esquemas Algorítmicos: Apuntes у colección де problemas , Доклад LSI-97-6-T-09/30/1997-TRE-

Спасибо.

+0

Вы можете добавить пример того, что не работает для вас до сих пор? – nolan

+0

Старый ASP или ASP.NET? –

+0

Ну, проблема в том, что если я это сделаю: Replace (string, "@", "-"), я получаю повторяющийся «-», и мне просто нужен сингл «-», когда в строке ввода будет найдено несколько «@». Спасибо – Mitteg

ответ

1

Попробуйте это для классического ASP:

Dim regEx 
Set regEx = New RegExp 

With regEx 
    .Pattern = "([\@])\1+|(\@)" 
    .Global = True 
    .MultiLine = True 
End With 
strMessage = regEx.Replace(str, "-") 

Это будет соответствовать каждое вхождение нескольких @@@@ или единичные вхождения @

Не уверен, какой язык вы используете, так вот выражение в полном объеме с разделителями: /([\@])\1+|(\@)/g

Edit - еще проще: /@+/g

enter image description here

+0

Без проблем, рад помочь. Примите, пожалуйста, как ответ, когда это возможно :) – DNKROZ

+0

Есть ли что-то особенное в движке регулярных выражений ASP, которое не позволяет вам просто использовать '@ +'? – nolan

+0

Нет - вы правы. Сначала я отправил ответ, используя '@ +', но затем удалил его, когда думал, что OP ищет что-то другое. Однако они дают одинаковый результат. Я обновляю свой ответ – DNKROZ

0
using System; 
    using System.Text.RegularExpressions; 

    public class Program 
    { 
     public static void Main() 
     { 
      Console.WriteLine("Hello World"); 
      String input = "@Introducción a los Esquemas Algorítmicos: Apuntes y colección de problemas. Report [email protected]@@@@@@@09/30/[email protected]@@@@[email protected]"; 
      String output=Regex.Replace(input,@"\@+","-"); 
      Console.WriteLine(output); 

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