我在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
答案 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]*)\/