繁体   English   中英

正则表达式“或”表达式

[英]Regex “or” Expression

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

当我分割此字符串时: 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/zh-cn/library/ze12yx1d.aspx ,向下滚动到第三个备注...

您可以使用如下正则表达式: [= ]+

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

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

如果要保留分隔符,请将正则表达式用括号括起来: ([= ]+)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM