首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

急 求正则表达式转换,

2013-10-30 
急---- 求正则表达式转换,高手请进!第一个:判断一个string 是否符使用文件路径ABC(紧跟主域名后),如果不是

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

判断一个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.Replace(str,@"(?i)(?<=\.com/)[^/]+(?=/
[解决办法]
$)",m=>m.Value.ToUpper()=="ABC"?"ABC":"ABC/"+m.Value));
}

[解决办法]
Result:

https://www.domain.com/ABC/edit.aspx&..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.htmlhttps://www.domain.com/ABC/ABC.html

[解决办法]

 List<string> list = new List<string>();
            list.Add("https://www.domain.com/ABC/edit.aspx&... ");
            list.Add("https://www.domain.com/user/abc.aspx& ");
            list.Add("https://www.domain.com/ABC.html ");


            Regex reg = new Regex(@"(?is)(https?://([^./]*\.)+com/)(?!ABC/)");
            foreach (string s in list)
        {
                Console.WriteLine(reg.Replace(s,"$1ABC/"));
        }


/****结果****

https://www.domain.com/AB
https://www.domain.com/AB
https://www.domain.com/AB
请按任意键继续. . .

****结果****/


[解决办法]
引用:

 List<string> list = new List<string>();


            list.Add("https://www.domain.com/ABC/edit.aspx&... ");
            list.Add("https://www.domain.com/user/abc.aspx& ");
            list.Add("https://www.domain.com/ABC.html ");


            Regex reg = new Regex(@"(?is)(https?://([^./]*\.)+com/)(?!ABC/)");
            foreach (string s in list)
        {
                Console.WriteLine(reg.Replace(s,"$1ABC/"));
        }




急 求正则表达式转换,

热点排行