考虑要求找到一组匹配的字符集,并删除它们之间的任何字符,以及这些字符/分隔符。删除字符串中的分隔符之间的文本(使用正则表达式?)
这里是分隔符的集:
[] 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#实现这一目标?我倾向于一个正则表达式。
Bonus:有没有简单的方法来匹配常量或某种列表中的开始和结束分隔符?如果业务分析师想出新的分隔符集合,我所寻找的解决方案将很容易更改分隔符。
这现在可以用作(很可能)为“给我[一些]紫色(和更多)[大]大象”。这可以通过使用'。*?'来解决而不是上面提供的表达式中的'*'。 – mayu 2012-09-19 02:23:10