日期:2014-05-17  浏览次数:20708 次

急---- 求正则表达式转换,高手请进!
第一个:

判断一个string 是否符使用文件路径ABC(紧跟主域名后),如果不是则加上路径ABC,其余部分保持不变。

比如
https://www.domain.com/ABC/edit.aspx&... 
//这个无需转换

https://www.domain.com/user/abc.aspx&... 
//这个需要转换成https://www.domain.com/ABC/user/abc.aspx&... 

https://www.domain.com/ABC.html 
//这个需要转换成https://www.domain.com/ABC/ABC.html


非常感谢!

------解决方案--------------------
string pattern = @"(?is)(?<=https?://[^/]+/)(?!abc/)";
------解决方案--------------------
str=Regex.Replace(str,@"(?i)(?<=\.com/)((?!abc\.)[^/])+",m=>m.Value.ToUpper()=="ABC"?"":"ABC/"+m.Value);
------解决方案--------------------
 string format =  @"https://www.(\w+).com/ABC/(.+)?";
            Regex g = new Regex(format);
            string mystr = @"https://www.baidu.com/AB/a.aspx";
            if (g.IsMatch(mystr))
            {
                Console.WriteLine("yes");
            }
            else
            {
                string t = @"https://www.(\w+).com";
                Regex g2 = new Regex(t);
                string url=  g2.Match(mystr).Groups[0].Value;
                Console.WriteLine("no");
                Console.WriteLine(url);

                int index = mystr.IndexOf(url)+url.Length;
                string newstr= mystr.Insert(index, @"/ABC");

                Console.WriteLine(newstr);
            }
            Console.Read();

------解决方案--------------------
void Main()
{
string[] ary= {
"https://www.domain.com/ABC/edit.aspx&..",
"https://www.domain.com/user/abc.aspx&... ",
"https://www.domain.com/ABC.html"
 };
foreach(var str in ary)
Console.WriteLine("{0}\t{1}",str,Regex.Re