0
這是字符串「21xy5」的一部分。我想插入「*」,其間用空格隔開:數字和字母,字母和數字,字母和字母。我使用這個正則表達式模式「\ d [a-z] | [a-z] \ d | [a-z] [a-z]」來查找插入字符串「*」的索引。問題是,當字符串21xy5中的正則表達式OR(|)與21-x | x-y | y-5匹配時,第一個條件21-x成功,第二個x-y未被選中,第三個成功。所以我有21 * xy * 5而不是21 * x * y * 5。如果輸入字符串是這樣的xy21,那麼x-y成功,然後我有x * y21。問題是邏輯OR不是貪婪的。邏輯OR(正則表達式)問題不是貪婪
Regex reg = new Regex(@"\d[a-z]|[a-z]\d|[a-z][a-z]");
MatchCollection matchC;
matchC = reg.Matches(input);
int ii = 1;
foreach (Match element in matchC)
{
input = input.Insert(element.Index + ii, " * ");
ii += 3;
}
return input;
Thx,我現在明白了。 – dontoo 2010-04-04 13:32:44