【问题标题】:How can I split a string by some characters and not by a string made of these characters? [duplicate]如何用某些字符而不是由这些字符组成的字符串来拆分字符串? [复制]
【发布时间】:2016-01-07 21:06:04
【问题描述】:

如何用'-''>'"->" 分割字符串?

我想拆分下面的字符串:

AAA-BBB->CCC>DDD

得到的结果等于:

{ "AAA", "BBB->CCC", "DDD" }

【问题讨论】:

  • 不是重复的。这是由单个字符分隔符分割的,除非该字符是多部分字符串的一部分。

标签: c# .net


【解决方案1】:

以下示例使用带有前瞻和后瞻规则的正则表达式来拆分基于“-”或“>”而不是“->”的字符串:

string input = "AAA-BBB->CCC>DDD";
var regex = new Regex("-(?!>)|(?<!-)>");
var split = regex.Split(input);
// split = { "AAA, "BBB->CCC", "DDD" }

【讨论】:

  • 我确实觉得这更容易阅读:Regex.Split(input, "(?!-&gt;)-|&gt;(?&lt;!-&gt;)"); 它也是如此。
  • 在线正则表达式测试人员可能无法正确处理此正则表达式,因为 Javascript 不支持后向规则。不过,它可以在 C# 中正常工作。
猜你喜欢
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多