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

Cbfan 2013-10-24 05:06:46
第一个:

判断一个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


非常感谢!
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
马老虎 2013-10-24
  • 打赏
  • 举报
回复
引用 6 楼 mmm306306 的回复:

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/"));
}




马老虎 2013-10-24
  • 打赏
  • 举报
回复

 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
请按任意键继续. . .

****结果****/
q107770540 2013-10-24
  • 打赏
  • 举报
回复
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.html	https://www.domain.com/ABC/ABC.html
q107770540 2013-10-24
  • 打赏
  • 举报
回复
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));
}
biind 2013-10-24
  • 打赏
  • 举报
回复
 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();
q107770540 2013-10-24
  • 打赏
  • 举报
回复
str=Regex.Replace(str,@"(?i)(?<=\.com/)((?!abc\.)[^/])+",m=>m.Value.ToUpper()=="ABC"?"":"ABC/"+m.Value);
  • 打赏
  • 举报
回复
string pattern = @"(?is)(?<=https?://[^/]+/)(?!abc/)";

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧