【发布时间】:2017-03-08 23:24:27
【问题描述】:
我有一个如下的字符串数组,如图所示。在遍历数组时,我需要将数值和字母值分开。 例如:
- 35.00MY 到 35.00 和 MY
- 2.10D8 到 2.10 和 D8
- 80.00YRI 到 80.00 和 YRI
-
4.00G8 到 4.00 和 G8
我尝试了以下代码,但没有帮助
foreach (string taxText in taxSplit) {
Regex re = new Regex(@"([a-zA-Z]+)(\d+)");
Match result = re.Match(taxText);
string alphaPart = result.Groups[1].ToString();
string numberPart = result.Groups[2].ToString(); }
都返回空
【问题讨论】:
-
如果它的 35.00ab3500bc 会发生什么
-
我需要它作为 35.00 和 ab3500bc。我总是在开始时有数字,然后是带或不带数字的字母
-
您的正则表达式与您所描述的不符。你的数字和字母颠倒了;您的样本是 NumberLetter,而您的正则表达式是 LetterNumber。试试
([)(0-9\.]+)(.+);数字在 Groups[1] 中,字母在 Groups[2] 中。适用于您发布的所有示例。第三个将在G8之前包含一个空格,但如果这是一个问题,您可以使用String.Trim()删除它。 -
D8、YRI ... 的代表是什么?
-
我的错。蹩脚的笔记本电脑触摸板移动了光标;我一定是用手掌碰到了它。请改用
([0-9\.]+)(.+)。