微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用自定义c#函数替换多次出现的子字符串?

如何解决如何使用自定义c#函数替换多次出现的子字符串?

| 我在下面编写了替换字符串的代码,但似乎代码有问题。它不能多次替换。它只能代替第一次出现。它假定替换所有出现的事件。 //不要使用System.Security.SecurityElement.Escape。我正在为多个.NET版本编写此代码
public string UnescapeXML(string s)
{
    if (string.IsNullOrEmpty(s)) return s;
    return s.Replace(\"&amp;\",\"&\").Replace(\"&apos;\",\"\'\").Replace(\"&quot;\",\"\\\"\").Replace(\"&gt;\",\">\").Replace(\"&lt;\",\"<\");
}

protected void Page_Load(object sender,EventArgs e)
{

    string TestData=\"TestData&amp;amp;amp;\";
    Response.Write(\"using function====>>>>\" + UnescapeXML(TestData));
    Response.Write(\"\\n\\n<BR>Not using function====>>>>\" + TestData.Replace(\"&amp;\",\"\"));

}
    

解决方法

        假设您想要单通道(每个子字符串)解决方案,您的函数将正常运行。 您的testDate在
amp;
之前缺少
&
个字符 改成:
string TestData=\"TestData&amp;&amp;&amp;\";
从:
string TestData=\"TestData&amp;amp;amp;\";
什么是单遍(每个子字符串)解决方案? 每个唯一的substring1出现都被更改。 然后,更改每个唯一的substring2出现。 ... 然后,改变每个唯一的子串N的出现。 递归替代 递归解决方案将涉及以下内容: 替换单个子字符串后,您再次调用该函数 如果没有替换,返回字符串
public string ReplaceStuff(string MyStr) {   
  //Attempt to replace 1 substring

  if ( ReplacementOccurred ){
    return ReplaceStuff(ModifiedString);
  }else{
    return MyStr;
  } 
}
递归有什么用? 好,给定一个输入字符串:
&amp;amp;
,它将首先更改为
&amp;
,然后进行下一级别的递归将其更改为
&
。 老实说,我不认为作者需要递归解决方案,但我可以看到路人可能会如何。     ,        看起来HttpUtility类将是这种情况下的最佳选择。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。