Member 13454019 Ответов: 1

Разделить строку, начинающуюся с нижнего регистра


Всем привет,

я пытаюсь разбить строку, начинающуюся с нижней буквы до конца.

Пример:
АВСD;d6523;SiBABC.Р;С1;EEcUY

я могу разделить эти строки с помощью"; " после этого у меня есть массив типа

arr[]={"ABDd", "d6523", "SiBABC. R", "s1", " EEcUY"}

тогда я хочу получить значение после более низких букв, таких как;
6523, BABC. R, 1, UY

или

EFGi;ABo00004;SEg1004;s4

00004,1004,4

ниже я попробовал что-то, но это не удается, когда он пытается получить значение TagName=d
он находит "ABCd", но я ожидаю получить "6523"

У вас есть какие-нибудь идеи ? или вы можете предложить мне поискать какой-нибудь документ для этого?

Что я уже пробовал:

string txtLine="ABCd;d6523;SiBABC.R;s1;EEcUY";
string[] TagName = new string[] { "d", "Si", "s", "EEc" };
var arr = txtLine.Split(';');

 foreach (var item in TagName)
            {
               
                var val = array.Where(m => m.IndexOf(item) > -1).FirstOrDefault().Substring(item.Length);
                
            }

1 Ответов

Рейтинг:
0

OriginalGriff

Попробуйте регулярное выражение:

(?<=[a-z])(?<Value>[^a-z;]+?)(?=[a-z;]|$)

string txtLine = "ABCd;d6523;SiBABC.R;s1;EEcUY";
MatchCollection matches = Regex.Matches(txtLine, @"(?<=[a-z])(?<Value>[^a-z;]+?)(?=[a-z;]|$)");
foreach (Match m in matches)
    {
    Console.WriteLine(m.Value);
    }
Генерирует:
6523
BABC.R
1
UY


Member 13454019

спасибо, ты дал мне рыбу. После этого я научусь ловить рыбу :)

OriginalGriff

-Если дать человеку рыбу, он будет есть целый день. Если вы научите человека ловить рыбу, вы не получите от него больше ни одного дня работы, потому что он будет на реке до заката."