在c#中拆分十进制数和一个文本

时间:2015-02-25 23:52:00

标签: c# .net

我正在尝试拆分包含十进制数字的字符串和ex:

的文本字符

"30.88H"到包含30.88H

的数组中

我使用了以下正则表达式:

string[] a = 
   Regex.Matches("30.88H", "([A-Z]+)|([0-9]+)").Cast<Match>().Select(m => m.Value).ToArray();

......但这给了我&#34; 30&#34;,&#34; 88&#34;和&#34; H&#34;而不是&#34; 30.88&#34;和&#34; H&#34;。 任何人都可以建议修复吗?

2 个答案:

答案 0 :(得分:0)

我认为目前唯一的问题是.不在[0-9]中,但我可以看到这是一个脆弱的解决方案,具体取决于输入字符串。你能描述一下所期望的行为吗?你会得到H3.88吗? H3.88H?如果是这样,你对它的期望是什么?

如果您的字符串始终采用相同的顺序和格式,那么添加.会让您感到满意。如果没有,请稍微描述一下情景,也许我们可以提出更合适的解决方案。

答案 1 :(得分:0)

您可能想尝试在RegEx中使用拆分方法。


  

要获取数字字符串,请使用此表达式

进行拆分
[A-Z]+
  

要获取字符串,请尝试使用此表达式

[0-9]+\.[0-9]+

您应该使用以下格式的split方法:

string expr1 = Regex.Split("30.88H", @"[0-9]+\.[0-9]+"); \\Returns H
string expr2 = Regex.Split("30.88H", @"[A-Z]+"); \\Returns 30.88