替换特定字符之前的所有尾随空格

本文关键字:空格 字符 替换 | 更新日期: 2023-09-27 18:33:55

我正在解析因拥有各种字符而臭名昭著的鼻息规则。我特别试图用右括号替换最后一个右括号之前的所有尾随空格:

简单的例子:

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;)

我试过了

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

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

但是newRuleText字符串仍然没有变化。

替换特定字符之前的所有尾随空格

问题与

正确的正则表达式无关。我已经执行了这个:

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+'')"进行了测试?

如果这有效,则问题与 $ 有关,并且")"不是最后一个字符