Подтвердить что ты не робот

Могу ли я использовать регулярное выражение для поиска индекса X?

У меня есть большая строка и вы хотите найти первое вхождение X, X - "numberXnumber"... 3X3 или 4X9...

Как я могу сделать это на С#?

4b9b3361

Ответ 1

Да, регулярное выражение может сделать это для вас

вы могли бы сделать ([0-9]+)X([0-9]+) Если вы знаете, что цифры - только одна цифра, вы можете взять [0-9]X[0-9]

Ответ 2

var s = "long string.....24X10     .....1X3";
var match = Regex.Match(s, @"\d+X\d+");
if (match.Success) {
    Console.WriteLine(match.Index); // 16
    Console.WriteLine(match.Value); // 24X10;
}

Также обратите внимание на NextMatch, которая является удобной функцией

match = match.NextMatch();
match.Value; // 1X3;

Ответ 3

это может помочь вам

   string myText = "33x99 lorem ipsum  004x44";

    //the first matched group index
    int firstIndex =  Regex.Match(myText,"([0-9]+)(x)([0-9]+)").Index;

    //first matched "x" (group = 2) index 
    int firstXIndex =  Regex.Match(myText,"([0-9]+)(x)([0-9]+)").Groups[2].Index;

Ответ 4

var index = new Regex("yourPattern").Match("X").Index;

Ответ 5

Для тех, кто любит методы расширения:

public static int RegexIndexOf(this string str, string pattern)
{
    var m = Regex.Match(str, pattern);
    return m.Success ? m.Index : -1;
}

Ответ 6

Вы хотите номер или индекс номера? Вы можете получить оба из них, но вы, вероятно, захотите взглянуть на System.Text.RegularExpressions.Regex

Фактический шаблон будет [0-9]x[0-9], если вы хотите, чтобы только одиночные числа (89x72 соответствовали только 9x7) или [0-9]+x[0-9]+, чтобы соответствовать самой длинной последовательной строке чисел в обоих направлениях.

Ответ 7

http://www.regular-expressions.info/download/csharpregexdemo.zip

Вы можете использовать этот шаблон:

\ д ([XX])\д

Если я тестирую

blaat3X3test

Я получаю:

Смещение матча: 5 Длина матча: 3 Согласованный текст: 3X3 Смещение группы 1: 6 Длина группы 1:1 Текст группы 1: X