/ / wyrażenie regex, aby uzyskać tekst przed ciągiem - c #, regex, string

wyrażenie regex, aby uzyskać tekst przed ciągiem - c #, regex, string

Mam ciąg tekstowy w języku c #, który próbuję uzyskać wszystkie słowa przed moim wyrażeniem eachDELETEDDELETED i chcę zamienić je na listę lub tablicę. Czy ktoś może pomóc z częścią regex.

próbka tekstu: word word word word word word 20 word-16S eachDELETEDDELETEDword word word word word word 20 word-16z1 (size 26), eachDELETEDDELETED

Regex ry = new Regex(@"eachDELETEDDELETED");
MatchCollection matchList = Regex.Matches(extracted, ry.ToString());
var list = matchList.Cast<Match>().Select(match => match.Value).ToList();

foreach (string s in list)
{
richTextBox2.Text += s + "n";
}

Odpowiedzi:

1 dla odpowiedzi № 1

Po prostu użyj Regex.Split:

string example = "word word word word word word 20 word-16S eachDELETEDDELETEDword word word word word word 20 word-16S eachDELETEDDELETED";
string[] parts = Regex.Split(example, "eachDELETEDDELETED");
foreach(string part in parts)
{
Console.WriteLine(part);
}

Wyjdzie:

word word word word word word 20 word-16S
word word word word word word 20 word-16S

0 dla odpowiedzi nr 2

Dla odniesienia, można to zrobić również z wyprzedzeniem i G Kotwica:

^|G(?:([-w]+)s*)(?!(?:eachDELETEDDELETED))

Widzieć wersja demo na regex101.com.