有一个字符串是:10|#11|#12|#101|#102|#103请教小弟我怎么用正则表达式从后面取第一个

有一个字符串是:#10|#11|#12|#101|#102|#103请问我如何用正则表达式从后面取第一个?
本帖最后由 dbmonths 于 2015-04-22 11:45:57 编辑
有一个字符串是:#10|#11|#12|#101|#110|#120 请问我如何用正则表达式从后面取第一个?
也就是当我匹配#110的时候,不会去匹配第一个#11,而是匹配后面的110,谢谢

var g:RegExp=new RegExp("#10|#11|#12|#101|#110|#120","g")
var a1:Array="#110".match(g);
var a2:Array="#12".match(g);
a1结果:#11
a2结果:#12

我想得到a1是110的结果,谢谢。
------解决思路----------------------
你这个直接Split下,然后判断你要找的在第几个索引位置,然后获取它下一个索引的代码,不要什么都正则……
static string NextStr(string inputStr)
        {
            string txt = @"#10
------解决思路----------------------
#11
------解决思路----------------------
#12
------解决思路----------------------
#101
------解决思路----------------------
#110
------解决思路----------------------
#120";
            var list = txt.Split('
------解决思路----------------------
').ToList();
            for (var i = 0; i < list.Count - 2; i++)
            {
                if (list[i] == inputStr)
                {
                    return list[i + 1];
                }
            }
            return null;
        }

------解决思路----------------------
string txt = @"#10
------解决思路----------------------
#11
------解决思路----------------------
#12
------解决思路----------------------
#101
------解决思路----------------------
#110
------解决思路----------------------
#120";
            Console.WriteLine(Regex.Match(txt, @"#120", RegexOptions.RightToLeft).Value);

你的都不是C#,而且你的字符串是被用作了正则匹配
------解决思路----------------------
private static void Func1(string matchStr)
        {
            string str = "#10
------解决思路----------------------
#11
------解决思路----------------------
#12
------解决思路----------------------
#101
------解决思路----------------------
#110
------解决思路----------------------
#120";
            var list = str.Split('
------解决思路----------------------
').ToList();
            var match = list.Where(r => r.Contains(matchStr)).LastOrDefault();
        }