Wyciaganie interesujacego tekstu ze stringa

0

Wiam,
jak wyciągnąć ze stringa interesujący nas tekst, np. dostajemy

"pierwszywiersz \t\t  \t\t \t pierwszawartosc"

i chcemy wyciągnąć z niego

"pierwszywiersz(tu_jakiś_separator) pierwszawartosc"

Dodam tylko, że nie wiemy ile znaków tabulacji lub spacji będzie między dwoma interesujacymi nas tekstami. Z góry dzięki za odpowiedzi.

dodanie znaczników <code class="csharp"> - @furious programming

2

Wyrażenie regularne (\w+)\s+(\w+)? Ale to tylko jeśli te wyrażenia są bez białych znaków, inaczej jak odróżnić gdzie następuje podział dla ala ma kota a sierotka ma rysia? Gdzie wg ciebie kończy się pierwszywiersz a gdzie zaczyna pierwszawartosc?

0

pierwszy tekst("pierwszywiersz") to ciąg znaków i kończy się przy pierwszej spacji lub tabulatorze, drugi tekst("pierwszawartosc") zaczyna się przy znaku nie będącym spacją lub \t. Cały string to jedna linia

0

W takim razie taki regexp powinien wystarczyć.

0

jak zrobić to twoim sposobem? ja zrobiłem to tak:

                s = Regex.Replace(s, @"\s+", " ");
                s = Regex.Replace(s, @"\s+", "\t");

(jeden tabulator jako separator) i nie mam pojęcia jak użyć (\w+)\s+(\w+), próbowałem na kilka sposobów..

3
using System;
using System.Text.RegularExpressions;

public class Test
{
	public static void Main()
	{
		string input = "alamakota   sierotkamarysia";
		Match match = Regex.Match(input, @"(\w+)\s+(\w+)");
		if (match.Success)
		{
		    Console.WriteLine(match.Groups[1].Value);
		    Console.WriteLine(match.Groups[2].Value);
		}
	}
}

edit: wstyd ci powinno być bo właśnie pierwszy raz w życiu napisałem kod z użyciem regexpów w c# :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1