0

这可能是一个非常基本的问题,但我找不到任何答案。我需要通过两个或多个空格或等号来匹配字符串。

当我拆分这个字符串时:9 x 13 = (8.9 x 13.4) (89 x 134)( +)得到:

part 0: 9 x 13 = (8.9 x 13.4)
part 1: (89 x 134)

当我将其拆分时,(=)我得到:

part 0: 9 x 13 
part 1:  (8.9 x 13.4)          (89 x 134)

怎么能被BOTH分开?就像是:(=)OR( +)

编辑: 这不起作用(=)|( +),我期待:

part 0: 9 x 13 
part 1: (8.9 x 13.4)
part 2: (89 x 134)
4

4 回答 4

2

您的正则表达式应该可以工作,除了它会留下 . 之前和之后的空格=。这是假设您确实在该( +)部分中使用了两个空格(通过 SO 的格式将其标准化为一个空格)。这会产生你说你想要的确切结果:

@" {2,}|\s*=\s*"
于 2012-06-04T10:51:24.613 回答
1

简单地,

Pattern = "\s*=\s*|(?!\))\s+?(?=\()"
于 2012-06-04T10:34:13.730 回答
0
(=)|( +)

这对你有好处吗?

解释和示例: http: //msdn.microsoft.com/en-us/library/ze12yx1d.aspx,向下滚动到第三条评论...

于 2012-06-04T10:33:46.937 回答
0

您可以使用这样的正则表达式:[= ]+

var regex = new Regex("[= ]+");
var parts = regex.Split("this is=a test");

// parts = [ "this", "is", "a", "test" ]

如果要保持分隔符将正则表达式括在括号中:([= ]+)

于 2012-06-04T10:55:29.337 回答