2009-11-23 240 views
-3

我有一个像123Prefix1pics.zip如何分割字符串

我想将它分割成123 Prefix1 pics.zip并将它们存储在不同的变量 我尝试做它在C#中的字符串,.NET JST关于如何使用拆分方法的小问题

+0

如果您提到该语言,您会得到更好的答案。 – Yacoby 2009-11-23 11:44:47

+2

什么语言?请付出一些努力。 – LiamB 2009-11-23 11:44:49

+0

用什么语言? – 2009-11-23 11:45:00

回答

7
splitArray = Regex.Split(subjectString, @"(?<=\p{N})(?=\p{L})"); 

将在C#中工作的一些(\p{N})和信(\p{L})之间的位置分裂。

如果你也希望有一个字母和数字之间的分割,使用

splitArray = Regex.Split(subjectString, @"(?<=\p{L})(?=\p{N})|(?<=\p{N})(?=\p{L})"); 

但是,将您的例子太多了。

+0

答案很高雅,但正如蒂姆所说,它不会产生所需的结果 - 但它被标记为正确的? – 2009-11-23 12:06:16

0

看起来像要按固定大小拆分。

所以使用yourString.Substring(0, 3);

1

你可以这样开始:

string filename = "123Prefix1pics.zip" 
string part1 = filename.Substring(0, 3); 
string part2 = filename.Substring(3, 7); 
string part3 = filename.Substring(10, 4); 

您还可以注意到String.Split()需要一个分离的说法,像;,。由于您没有任何分隔符,因此您可以尝试两种方法:

  • 确保所有文件名具有相同的格式;这样,您可以使用Substring()打破字符串
  • 您可以识别更普遍的模式,如“数字,7个字符再加上4个字符”并使用正则表达式。这是更先进的解决方案,可能导致维护问题;

我建议你坚持第一种选择。

5

你只想分割一个字符串?太容易了!

string filename = "123Prefix1pics.zip" 
string part1 = "123" 
string part2 = "Prefix1" 
string part3 = "pics.zip" 

好的这是一个笑话,但它给出了正确的答案。除非你概括分解规则,或者提供更多的例子,否则我们只能猜测。

可能被要求在数字后打断字符串,但我只是猜测。

+0

:)我想我们同意这一点,柯克。 – 2009-11-23 12:17:19

1

您可以像这样把它分解:

  • 在一个字符串变量这样你的ip:
  • 创建一个char向量
  • 然后串矢量

代码:

string theIP="this is string"; 
char[] separator={' '}; //you can put multiple separators 
string[] result = theIP.Split(separator,StringSplitOptions.None); 

这意味着result[0]"this"result[1]"is",依此类推。

你可以找到一个很好的教程关于字符串分割位置:

http://goldwin-advertising.ro/index.php?option=com_content&view=article&id=10:splitstring&catid=3:howto&Itemid=5

祝你好运!