2011-04-08 57 views

回答

4

是的,正則表達式可以爲你做的

你可以做([0-9]+)X([0-9]+)如果你知道這些數字只是單一的數字,你可以採取[0-9]X[0-9]

2

這可能會幫助你

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; 
1
var index = new Regex("yourPattern").Match("X").Index; 
+0

相同的評論如下不正確的只是匹配X – 2011-04-08 07:41:44

0

你想要號碼還是號碼的索引?你可以得到這兩個,但你可能會想看一看在System.Text.RegularExpressions.Regex

實際的模式將是[0-9]x[0-9]如果你只想要一個數字(89x72將只匹配9×7),或[0-9]+x[0-9]+到在兩個方向上匹配最長的連續字符串。

35
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; 
1

對於那些誰愛我延長thods:

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