我可以使用正则表达式来查找X的索引吗?

Jas*_*n94 14 c# regex

我有一个大字符串,想要找到第一个出现的X,X是"numberXnumber"... 3X3,或4X9 ......

我怎么能在C#中做到这一点?

Jam*_*urz 41

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;
}
Run Code Online (Sandbox Code Playgroud)

另外看看NextMatch哪个是方便的功能

match = match.NextMatch();
match.Value; // 1X3;
Run Code Online (Sandbox Code Playgroud)


K. *_*R. 10

对于那些喜欢扩展方法的人:

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


Bug*_*der 5

是的,正则表达式可以为您做到这一点

你可以做([0-9]+)X([0-9]+)如果你知道这些数字只是个位数,你可以[0-9]X[0-9]