【问题标题】:String replacement layering字符串替换分层
【发布时间】:2014-04-30 21:46:37
【问题描述】:

我不确定如何最好地为这个问题命名。我正在努力实现一个基本的一次性程序,通过一批微软访问数据库进行一些非常自定义和特定的搜索和替换。我遇到了一个问题,其中某些令牌是较大令牌的搜索或替换部分的一部分。示例:

    Horse:Battery -> HorseBattery
    Horse:Battery:Staple -> HorseBatteryStaple
    Correct:Horse:Battery -> CorrectHorseBattery

如您所见,执行这些替换的顺序可能会影响结果。这是更大问题的一个糟糕且不完整的快照。

是否有一种特定的算法可以对给定的输入文本应用多个字符串搜索和替换操作,从而不执行重叠?

【问题讨论】:

  • 请附上一些您尝试过的代码和无效的代码。
  • 我不能有两个原因:1)它是 800 多行大部分程序代码,与特定任务(我们的内部 Access 数据库)紧密绑定,2)它是专有的,我不能在公共场合分享。如果你真的想要一些代码,这里是:s = s.Replace(r.SearchToken, r.ReplacementToken);
  • 如果您无法共享您的代码,我们将无法帮助您。这就像试图从外面修理一辆汽车。删除专有元素,并发布使问题可回答所需的最小块。
  • 这是一道算法题,不是代码题。
  • 阴极,我认为你需要一个更好的例子,或者一个更好的问题陈述来获得一些体面的帮助。目前还不清楚搜索令牌是什么,或者替换是什么。

标签: c# string algorithm ms-access


【解决方案1】:

假设您的tokensstrings,您可以尝试这样的操作

string[] dataAccess = {"Horse:Battery", "Horse:Battery:Staple", "Correct:Horse:Battery"};
foreach (var value in dataAccess)
{
 var newValue = string.Empty;
 var values = value.Split(':');
 newValue = values.Aggregate(newValue, (current, word) => current + word);
}

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 2021-09-12
    • 2013-06-19
    • 2021-03-25
    • 1970-01-01
    • 2016-09-22
    • 2016-07-07
    • 2020-11-21
    相关资源
    最近更新 更多