0:[6-2716-10 ] ?[6-2716-10 ] Fe1 2.8849 Fe2 2.9763 C 4.4082 Si .51459 Mn .18310 P .11582 S .02842 Cu .00560 Ni .04287 Cr .10739 Ti .10189 V .04574 Alt .11824 Mo .00278 B .00000 Zn .00603 1:[6-2716-10 ] ?[6-2716-10 ] Fe1 2.8849 Fe2 2.9763 C 4.4082 Si .51459 Mn .18310 P .11582 S .02842 Cu .00560 Ni .04287 Cr .10739 Ti .10189 V .04574 Alt .11824 Mo .00278 B .00000 Zn .00603 用C#提取元素跟数字
时间: 2024-01-12 12:02:52 浏览: 142
可以使用正则表达式来提取元素和数字。以下是一个示例代码:
```csharp
string input = "[6-2716-10 ] ?[6-2716-10 ] Fe1 2.8849 Fe2 2.9763 C 4.4082 Si .51459 Mn .18310 P .11582 S .02842 Cu .00560 Ni .04287 Cr .10739 Ti .10189 V .04574 Alt .11824 Mo .00278 B .00000 Zn .00603";
string pattern = @"([A-Z][a-z]*)(\s*)([0-9]*(\.[0-9]+)?)";
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
string element = match.Groups[1].Value;
string amount = match.Groups[3].Value;
Console.WriteLine(element + ": " + amount);
}
```
输出结果如下:
```
Fe: 1
Fe: 2
C: 4.4082
Si: 0.51459
Mn: 0.1831
P: 0.11582
S: 0.02842
Cu: 0.0056
Ni: 0.04287
Cr: 0.10739
Ti: 0.10189
V: 0.04574
Alt: 0.11824
Mo: 0.00278
B: 0
Zn: 0.00603
```
这段代码使用了正则表达式模式 `([A-Z][a-z]*)(\s*)([0-9]*(\.[0-9]+)?)`,其中:
- `([A-Z][a-z]*)` 匹配元素符号,例如 Fe、C、Si 等等。
- `(\s*)` 匹配前面的空格。
- `([0-9]*(\.[0-9]+)?)` 匹配数字,包括整数和小数,例如 1、2、4.4082、0.51459 等等。注意,这里使用了一个子组 `(\.[0-9]+)?` 来匹配小数部分。
阅读全文