正则表达式从URL链接获取名称

时间:2012-10-08 15:02:48

标签: c# regex sharepoint sharepoint-2010

我在SharePoint 2010中有一个超链接字段(aka列)。

说它叫SalesReportUrl。网址如下:

http://portal.cab.com/SalessiteCollection/October2012Library/Forms/customview.aspx

超链接字段将值存储在两个字段(链接和描述)中。

如果我希望将October2012Library移出网址,那么RegEx会是什么?

我尝试了这个,但它肯定不起作用:

@"<a[\s]+[^>]*?href[\s]?=[\s\"\']+(.*?)[\"\']+.*?>([^<]+|.*?)?<\/a>";

我也尝试过:

^(.*?/)?Forms/$ 

但没有运气。

我认为sharepoint存储的链接如下:

http://portal.cab.com/SalessiteCollection/October2012Library/Forms/customview.aspx, some description

看起来这有一个解决方案。但是什么是语法子字符串获取列表或库名称?https://sharepoint.stackexchange.com/questions/40712/get-list-title-in-sharepoint-designer-workflow

4 个答案:

答案 0 :(得分:5)

这个怎么样(正如丹尼尔建议的那样):

string url = @"http://portal.cab.com/SalessiteCollection/October2012Library/Forms/customview.aspx";
Uri uri = new Uri(url);
if(uri.Segments.Length > 2))
    Console.WriteLine(uri.Segments[2]); // will output "October2012Library/"

如果您想摆脱“/”

,可以添加.Replace("/", string.Empty)
Console.WriteLine(uri.Segments[2].Replace("/", string.Empty));

答案 1 :(得分:0)

尝试使用此new RegEx("SalessiteCollection/(.+?)/Forms").match(<urlString>).groups[1].value

虽然这是一个粗略的答案,但您可能需要进行一些更正,但我希望您能理解我要解释的内容。

答案 2 :(得分:0)

的http:// [^ /] + / [^ /] + /([^ /] +)/

匹配组[1]是您需要的值。它获取了url中的第3部分(除以/)。如果你需要确保它后面跟着其他部分,即表格,最后加上它。

答案 3 :(得分:-1)

也许这个?

http:\/\/([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}\/[a-zA-Z]*\/([a-zA-Z0-9]*)\/

http://rubular.com/r/LuuuORPRXt