我有一些以下格式的字符串:
--> ABCDEF_(0) "Abcde fgh"
--> GHIJ4 1
第一个应该返回 3 个匹配项:
-->
ABCDEF_(0)
"Abcde fgh"
第二个也应该返回 3 个匹配项:
-->
GHIJ4
1
所以我要匹配的是:
- 箭头 (-->)
- 非空白、非引号包围的字符组
- 用引号括起来的表达式,包括它们的空格
可以想象,一个字符串中可能有更多类型 (2) 和 (3) 的组,因此单个字符串可能有超过 3 个匹配项。
到目前为止,这就是我所拥有的:
var regex = new Regex(
@"-->" + // match the starting arrow
@"|[^""\s]*\S+[^""\s]*" + // match elements not surrounded by quotes, trimmed of surrounding whitespace
@"|""[^""]+"""); // match elements surrounded by quotes
但这不起作用,因为它打破了引号中的表达式,返回第一个字符串:
-->
ABCDEF_(0)
"Abcde
fgh"
什么正则表达式会起作用?如果有比正则表达式更简单的方法,我也会接受。