我有一个跟随字符串数组,如图所示。在循环遍历数组时,我需要分隔数值和字母值。 例如:
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(); }
两者都返回空
答案 0 :(得分:3)
您可以对Split
进行混蛋并使用前瞻(?= ... )
和后瞻(?<= ... )
:
string original = "35.00ab3500bc";
Regex reg = new Regex("(?<=[0-9])(?=[A-Za-z])");
string[] parts = reg.Split(original, 2);
在这里,我们必须实例化一个新的Regex
实例,因为此版本的Split
不能作为static
方法使用。我们传递的图案说是找到一个空白,其中空白的左侧是一个数字(即外观),而空白的右侧是一个字母(即前瞻)。我们通过2
表示我们最多需要parts
中的两个项目。
答案 1 :(得分:0)
var lst = new List<string>() { "35.00MY", "2.10D8", "80.00YRI", "4.00GB" };
var res = new List<string>();
lst.ForEach(v =>
{
res.Add(new string(v.TakeWhile(c => !Char.IsLetter(c)).ToArray()));
res.Add(v.TrimStart("01234567890.".ToCharArray()));
} );