我有一个:string BunchOfText
,其中包含一个以https://
开头并以.com
结尾的链接。
我需要隔离该链接并将其放在另一个字符串中。
有什么建议吗?
编辑:
我的文字看起来像这样:
它在20世纪60年代推出了包含Lorem Ipsum段落的Letraset表格,最近还发布了包括Lorem Ipsum版本在内的Aldus PageMaker等桌面出版软件。 https://mydomain/RANDOMGENERATEDTEXT.com 我们为什么要用它?
我想要一个新字符串
string link ="https://mydomain/RANDOMGENERATEDTEXT.com"
到编辑时,用户:serhiyb,给了我一个完美的答案!
答案 0 :(得分:0)
Regex linkParser = new Regex(@"https:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.com\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)?", RegexOptions.Compiled | RegexOptions.IgnoreCase);
string rawString = "some text with https://go.com link in it";
foreach(Match m in linkParser.Matches(rawString))
Console.WriteLine(m.Value);
现场演示: https://dotnetfiddle.net/Zg8UDj
它会找到所有以https
开头且属于.com
区域的子域名的链接。
答案 1 :(得分:0)
您可以使用Regex
找到链接,然后使用链接中的一个组来获取您想要的部分。
正则表达式:https:\/\/((www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256})\.com
括号中的部分是小组。
在C#代码中,使用如下:
Regex regex=new Regex(@"https:\/\/((www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256})\.com");
foreach(Match match in regex.Matches("test for https://www.domain.com"))
string partBetween=match.Groups[1].Value; // www.domain