这可能是一个非常基本的问题,但我找不到任何答案。我需要将一个字符串匹配两个或多个空格或等号。
当我拆分此字符串时: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)
答案 0 :(得分:2)
你的正则表达式应该有效,除了它会留下=
之前和之后的空格。假设你确实在( +)
部分中使用了两个空格(通过SO格式将其标准化为一个空格)。这个产生了你想要的确切结果:
@" {2,}|\s*=\s*"
答案 1 :(得分:1)
简单地说,
Pattern = "\s*=\s*|(?!\))\s+?(?=\()"
答案 2 :(得分:0)
答案 3 :(得分:0)
你可以使用这样的正则表达式:[= ]+
var regex = new Regex("[= ]+");
var parts = regex.Split("this is=a test");
// parts = [ "this", "is", "a", "test" ]
如果你想让分隔符将正则表达式包含在parens中:([= ]+)