【问题标题】:Regex for breaking the string inside and outside the quotes用于打破引号内外字符串的正则表达式
【发布时间】:2011-12-20 23:41:49
【问题描述】:

我必须使用正则表达式将字符串拆分成引号 ('"') 周围的部分,我可以使用类似的字符串拆分

// Split the string c using " as a delimiter        
string [] pieces = c.split('"');

但它会破坏引号周围的字符串,并且不会告诉哪个部分在引号中,哪个部分在引号之外,我需要知道这一点,因为我正在分别处理它们。我需要类似 Regex.Match 和 Regex.Split 的组合。

谢谢

席德

【问题讨论】:

  • 请提供一些示例输入和所需的输出。

标签: c# regex split


【解决方案1】:

再次使用 normal* (special normal*)* 模式进行救援!

使用"([^"]*(?:\\"[^"]*)*)" 循环输入并捕获第一组。

  • 正常:[^"]
  • 特殊:\\"

它甚至会使用带引号的双引号,例如 "a\"b",甚至是 "\"",甚至是空字符串 ""。

(注意(?:...) 是一个非捕获组)

【讨论】:

  • 我想你的意思是"[^"\\]*(?:\\.[^"\\]*)*" (ref)。作为 C# 逐字字符串,即为 @"""[^""\\]*(?:\\.[^""\\]*)*"""。但这仅适用于 匹配 字符串文字;显然,这只是 OP 想要做的一部分。
猜你喜欢
  • 2016-08-20
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 2018-02-02
相关资源
最近更新 更多