2012-08-14 56 views
1

我bangging我的头试图找出什么是正确的正则表达式这个字符串分割:正则表达式通过=,分裂=

[ABC]!=[BCD]= 

进入这个分裂的结果:

  • [ ABC]
  • !=
  • [BCD]
  • =

我的实际正则表达式是:

(?<=!=|=)|(?=!=|=) 

,但我得到的结果是:

  • [ABC]
  • =
  • [BCD]
  • =

请帮帮忙!

+0

你似乎还有其他'* ='操作符,你有可以接受的完整列表吗? – zzzzBov 2012-08-14 20:13:37

+0

是的,我很抱歉,那个正则表达式模式的部分是不相关的......其实我的正则表达式更复杂,但我只需要解决这个难题的最后部分。我将编辑问题删除不相关的部分...谢谢! – 2012-08-14 20:30:50

回答

4

这是更简单:

splitArray = Regex.Split(subjectString, "(!?=)"); 

给你["[ABC]", "!=", "[BCD]", "="]

+0

哇!我真的不知道,如果你把你的搜索模式放在圆括号内,Split方法将包含匹配......在地狱中的哪个地方记录下来?!..非常感谢! – 2012-08-14 20:25:44

+0

“地狱中哪里有记录?!”和“正则表达式”!你破解我:) – 2012-08-14 20:35:43

+0

我认为这是[相当好的文件](http://msdn.microsoft.com/en-us/library/az24scfc.aspx)。 – zzzzBov 2012-08-14 20:48:22

0

使用这个表达式(!=)|(=)|(\[.*?\])

+0

是的,你是对的,但我标记蒂姆Pietzcker答案为几秒钟的正确...无论如何,谢谢! – 2012-08-14 20:44:47