Regex替换c#中的双引号

本文关键字:替换 Regex | 更新日期: 2023-09-27 18:18:03

我正在尝试使用Regex替换c#中字符串的双嵌套引号,但到目前为止还无法实现。下面是示例文本和我尝试的代码-

string html = "<img src='"imagename='"g1'"'" alt = '"'">";
string output = string.Empty;
Regex reg = new Regex(@"([^'^,'r'n])""""+(?=[^$,'r'n])", RegexOptions.Multiline); 
output = reg.Replace(html, @"$1");

上面给出如下输出-

"<img src="imagename="g1 alt = >"

我正在寻找的实际输出是-

"<img src="imagename=g1" alt = "">"

请建议如何更正以上代码

Regex替换c#中的双引号

样式:'s*"'s*([^ "]+)"'s*(?=[">])|(?<=")("")(?=")

替换:$1

下面是regexstorm

的演示和测试

程序中使用的字符串字面值:

@"'s*""'s*([^ ""]+)""'s*(?=["">])|(?<="")("""")(?="")"

为了保持简单和更精确,直接关注src属性值

模式:('bsrc="[^ =]+=)"([^ "]+")"

替换:$1$2

这是在线演示,并在regexstorm

进行了测试

程序中使用的字符串字面值:

@"('bsrc=""[^ =]+=)""([^ ""]+"")"""

注意:我假设属性值不包含任何空格