我正在尝试拆分包含十进制数字的字符串和ex:
的文本字符 "30.88H"
到包含30.88
和H
。
我使用了以下正则表达式:
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;。 任何人都可以建议修复吗?
答案 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