【发布时间】:2015-10-22 09:56:14
【问题描述】:
我正在尝试解析一个字符串并用一些分隔符分割它,也包括分隔符。
比如从字符串if(a>b) write(a);我想得到if,(,a,>,b,),write,(,@98764 @,),;
这是我尝试过的:
string pattern = "(" + String.Join("|", delimiters.Select(d =>Regex.Escape(d)).ToList()) + ")";
List<string> result = Regex.Split(line, pattern).ToList();
它可以工作,但在某些情况下会失败。如果我有字符串if(a>0) write("it is positive");,我不想得到"it,is,positive"(因为空格是分隔符),而是"it is positive"。我该怎么做?
【问题讨论】:
-
您只想匹配 C 字符串吗?这是一个已解决的问题,这里有很多这样的问题。尝试添加
@"""[^""\\]*(?:\\.[^""\\]*)*"""。 -
不仅匹配,还拆分字符串。
标签: c# regex string split delimiter