Как я могу извлечь число между двумя строками, одна фиксированная, а другая вещь - PullRequest
0 голосов
/ 01 марта 2012

как мне извлечь число между двумя строками, одна из которых фиксированная, а другая - что угодно EX.HimyDear139 друг mydear111sayhi1234 imissdear121212 dear123likeorange

Мне нужно извлечь число, которое всегда после дорогого

Ответы [ 5 ]

6 голосов
/ 01 марта 2012

Используйте это выражение:

string expression = "dear(\d+)";
string myString = "HimyDear139friend mydear111sayhi1234 imissdear121212 dear123likeorange"
MatchCollection matches =  Regex.Matches(myString, expression);
foreach(Match m in macthes)
   Console.WriteLine(m.Groups[1].Value)
1 голос
/ 01 марта 2012

Ответ Алиостада правильный, просто добавьте к нему опцию RegexOptions.IgnoreCase, если вы хотите безразлично поймать Dear и dear

string expression = @"dear(\d+)";
string myString = "HimyDear139friend mydear111sayhi1234 imissdear121212 dear123likeorange";

MatchCollection matches =  Regex.Matches(myString, expression);
foreach(Match m in matches)
    Console.WriteLine(m.Groups[1].Value);

Console.WriteLine("Ignoring Case Option Enabled");
matches = Regex.Matches(myString, expression, RegexOptions.IgnoreCase);
foreach (Match m in matches)
    Console.WriteLine(m.Groups[1].Value);

Надеюсь, что помогло;)

0 голосов
/ 01 марта 2012

Поскольку вы получите около 92873928734 решений для регулярных выражений, которые выглядят одинаково, вот решение, которое не использует регулярные выражения:

// get start position
int index = str.IndexOf("dear") + 4;
// get digits
string digits = new String(str.Skip(index).TakeWhile(Char.IsDigit).ToArray());
0 голосов
/ 01 марта 2012

вы можете использовать что-то вроде

/dear(\d*)/
0 голосов
/ 01 марта 2012

Попробуйте использовать следующее регулярное выражение:

/dear(\d+)/i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...