2014-12-10 5 views
0

Я разбираю правила snort, которые известны тем, что имеют все виды символов. То, что я пытаюсь заменить конкретно, все конечные пробелы, предшествующие последней закрывающей скобки с просто закрывающей скобкой:Замените все пробелы перед определенным символом

простой пример:

alert tcp any any -> any any (msg: "jons test";  flow: to_server,established;  content:"/ui/"; nocase; content:"/getlatestversion?ver="; nocase; sid:1002496; rev:1;  ) 

Должно быть:

alert tcp any any -> any any (msg: "jons test";  flow: to_server,established;  content:"/ui/"; nocase; content:"/getlatestversion?ver="; nocase; sid:1002496; rev:1;) 

I «пробовал

string newRuleText = Regex.Replace(this.textBox1.Text, "s+\\)$", ")"); 

и

string newRuleText = Regex.Replace(this.textBox1.Text, "\\s+\\)$", ")"); 

Но строка newRuleText по-прежнему не имеет никаких изменений.

+0

Это второе Regex заявление отлично работает для меня. Попробуйте снова. –

+0

Есть ли еще пробелы после закрывающей скобки? –

+0

@GrantWinney Как вы его заработали? Я добавил это в простой форме: textBox2.Text = newRuleText; но новый textBox2 по-прежнему выглядит точно так же, как textBox1 ... что я пропустил? – scryptKiddy

ответ

2

Проблема не связана с правильным выражением, которое является правильным. Я казнён:

System.Text.RegularExpressions.Regex.Replace("alert tcp any any -> any any (msg: \"jons test\";  flow: to_server,established;  content:\"/ui/\"; nocase; content:\"/getlatestversion?ver=\"; nocase; sid:1002496; rev:1;  )","\\s+\\)$",")") 

и результат был:

"alert tcp any any -> any any (msg: \"jons test\";  flow: to_server,established;  content:\"/ui/\"; nocase; content:\"/getlatestversion?ver=\"; nocase; sid:1002496; rev:1;)" 

Может быть «)» не последний символ строки.

Вы проверили "\ s + \"? "?

Если это работает, то проблема связана с $ и «)» не последний символ

+0

Интересно, позвольте мне медленно просматривать мои данные. – scryptKiddy

+0

Спасибо за понимание Pablo, произошла ошибка копирования/вставки, которая вызвала эту проблему, поскольку вы заявили, что правильное выражение было правильным. – scryptKiddy

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