【发布时间】:2010-11-24 11:16:49
【问题描述】:
考虑找到一对匹配的字符集的要求,并删除它们之间的任何字符,以及那些字符/分隔符。
以下是分隔符集:
[] square brackets
() parentheses
"" double quotes
'' single quotes
以下是一些应该匹配的字符串示例:
Given: Results In:
-------------------------------------------
Hello "some" World Hello World
Give [Me Some] Purple Give Purple
Have Fifteen (Lunch Today) Have Fifteen
Have 'a good'day Have day
还有一些不应该匹配的字符串示例:
Does Not Match:
------------------
Hello "world
Brown]co[w
Cheese'factory
如果给定的字符串不包含匹配的分隔符集,则不会对其进行修改。输入字符串可能有许多匹配的分隔符对。如果一组 2 个分隔符重叠(即he[llo "worl]d"),那将是我们可以在这里忽略的边缘情况。
算法看起来像这样:
string myInput = "Give [Me Some] Purple (And More) Elephants";
string pattern; //some pattern
string output = Regex.Replace(myInput, pattern, string.Empty);
问题:您将如何使用 C# 实现这一目标?我倾向于使用正则表达式。
奖励:有没有简单的方法来匹配常量或某种列表中的开始和结束分隔符?我正在寻找的解决方案很容易更改分隔符,以防业务分析师提出新的分隔符集。
【问题讨论】:
标签: c# .net regex algorithm string