为分隔符创建转义序列的严格方法

时间:2015-05-13 01:55:32

标签: c# regex string escaping delimiter

示例文字:(John,36,Alabama)

我在代码中所做的是首先匹配圆括号(),然后使用逗号分隔内容作为分隔符。

private static IEnumerable<string> GetValues(string value)
{
  var matches = Regex.Matches(value, @"\(.*\)");
  if (matches.Count == 0) return new string[0];

  var valueSplit = matches[0].Value;
  var theString = valueSplit.Trim('(', ')');
  var wordSplit = theString.Split(',').Select(x=>x.Trim());
  return wordSplit;
} 

对于示例文本(John,36,Alabama),上述代码返回:

  • 约翰
  • 36
  • 阿拉巴马

现在的问题是我应该如何为逗号创建一个转义序列,我用它作为分隔符。

对于示例文本(John 36,Alton,&lt; -something in this comma Alabama)返回

  • 约翰
  • 36
  • Alton,Alabama

并递归地允许我甚至逃脱转义序列本身?我试过我的脑袋 String.Replace Regex.Replace ,但无济于事。

继承人Fiddle

1 个答案:

答案 0 :(得分:0)

如果你只想要3个子串,那么你可以从Split

中限制它
<script src="http://stats4dev.com/stata/kinetic-v5.0.2.min.js"></script>
<div id="container"></div>
<input type="button" value="sticker1">
<input type="button" value="sticker2">
<input type="button" value="sticker3">
<input type="button" value="sticker4">
<input type="button" value="sticker5">
<input type="button" value="sticker6">

输出:

  • John
  • 36
  • 阿拉巴马州,无论如何,经理

这是Fiddle