正则表达式“或”表达式

本文关键字:表达式 正则表达式 | 更新日期: 2023-09-27 18:36:16

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

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

正则表达式“或”表达式

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

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

简单地说,

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

这对你有好处吗?

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

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

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

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