我有什么如何真正将字符串拆分为字符串数组而不会丢失它在C#中的部分?
string ImageRegPattern = @"http://[\w\.\/]*\.jpg|http://[\w\.\/]*\.png|http://[\w\.\/]*\.gif";
string a ="http://www.dsa.com/asd/jpg/good.jpgThis is a good dayhttp://www.a.com/b.pngWe are the Best friendshttp://www.c.com";
我想要什么
string[] s;
s[0] = "http://www.dsa.com/asd/jpg/good.jpg";
s[1] = "This is a good day";
s[2] = "http://www.a.com/b.png";
s[3] = "We are the Best friendshttp://www.c.com";
BOUNS:
如果URL可以splited像下面,它会更好,但如果没有,也没关系。
s[3] = "We are the Best friends";
s[4] = "http://www.c.com";
有什么问题
我尝试使用下面的代码分割字符串,
string[] s= Regex.Split(sourceString, ImageRegPattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
但结果并不好,似乎分裂法采取了所有的与ImageRegPattern匹配的字符串。但我希望他们留下来。我检查了MSDN上的RegEx页面,似乎没有适合我需要的方法。那么该怎么做呢?
我不认为有任何通用的解决方案来拆分该字符串(当然,你可以制定一些方法来做到这一点,但它会非常具体)。您从RegEx获得任何回报,因为它在比赛中分裂。我个人会改变字符串的格式,除非有一个很好的理由不应该给字符串添加一个分隔符。 – evanmcdonnal
给定一个以逗号分隔的列表,'Regex.Split(“1,2,3”,“,”)'将返回数组''“1”,“2”,“3”]'。你提供的模式定义了分隔符,而不是你想要保留的。 'Regex.Split'不是你想在这里使用的。你试图保留文本*和*分隔符,这不是'Split'的作用。 –