读书人

急 求正则表达式转换

发布时间: 2013-10-30 12:56:21 作者: rapoo

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

判断一个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/"));
}




急 求正则表达式转换,

读书人网 >C#

热点推荐