正则表达式“或”表达

时间:2012-06-04 10:30:11

标签: c# .net regex

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

当我拆分此字符串时: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)

怎么可以分开?类似于:(=)OR( +)

编辑: 这不起作用 (=)|( +),我原以为:

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

4 个答案:

答案 0 :(得分:2)

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

@" {2,}|\s*=\s*"

答案 1 :(得分:1)

简单地说,

Pattern = "\s*=\s*|(?!\))\s+?(?=\()"

答案 2 :(得分:0)

(=)|( +)

这对你有好处吗?

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

答案 3 :(得分:0)

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

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

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

如果你想让分隔符将正则表达式包含在parens中:([= ]+)

相关问题