C# 用于提取Javascript Url的RegularExpression

C# 用于提取Javascript Url的RegularExpression,c#,javascript,regex,C#,Javascript,Regex,我有一个正则表达式,可以从给定字符串中提取url。它是C语言的,我想把它转换成javascript: private static Regex urlPattern = new Regex(@"(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+

我有一个正则表达式,可以从给定字符串中提取url。它是C语言的,我想把它转换成javascript:

 private static Regex urlPattern = new Regex(@"(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'"".,<>?«»“”‘’]))", RegexOptions.Compiled | RegexOptions.IgnoreCase);
[码>私人静态Regex公众公众公众静态Regex公众公众公众公众公众静态Regex公众公众公众公众公众静态Regex公众公众公众公众公众公众公众静态Regex公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众静态Regex公众公众公众公众公众公众公众公众公众公众静态Regex公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众公众124;[^\ s`!()\[\]{};:',?«»“']),RegexOptions.Compiled | RegexOptions.IgnoreCase); 但当我尝试这一点时,因为没有逐字记录,它会给我错误:

var regexToken = /(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'"".,<>?«»“”‘’]))/i;
(a)a-z[[a-z[[[[[w-[[[w-]5+以下以下以下:::::::{{1,3}[a-z0-9-10-10-10-10-10-10-10-10-9-10-10-10-10-10-10-9-10-9-9-10-10-9-10-9-5-9-9-9%]))))的第三方(”(”(”(上述上述上述上述上述上述上述上述上述上述上述上述上述上述上述的政府政府的主要主要主要的监管监管监管监管人士人士人士,以及上述上述上述上述上述上述上述上述上述的主要主要主要主要主要主要的政府,以及(第二名名名名名名名名名名名名名名名名名名名名名名名名人士,以及以及上述上述上述上述上述上述上述上述上述上述上述的政府政府,以及(((:::::::::::::::::::::!()\[\]{};:“,?«»””)/i; 我怎样才能轻松地转换它?我得到以下语法错误:无效量词
(?i)
不是在JavaScript中设置ignoreCase标志的有效选项(虽然在Opera中被忽略,但它似乎为您抛出了一个语法错误)。这些标志仅作为正则表达式文字的后缀提供,或作为的第二个参数中的字符串提供

此外,您忘了转义斜杠-因为分隔符用于分隔文字,所以需要转义斜杠

使用其中一个

var regexToken = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'"".,<>?«»“”‘’]))/i;
(a)a-z[[a-z[[a-z[[[w-[[w-]5+以下以下::::/{1,3}[a-z0-9-9-9-5-9-9-5-9-9%[a-z[a-z[a-z[a-z[a-z[a-z[[a-z[[a-z[[a-z[[a-z[[[[a-a-z[[a-z[[a-z[[[a-z[[a-z[[[[a-z[[[[[[[[[[[[w-[w-[w-[w-[w-[w-[w-[w-[w-[w-[w-[[[[[[w-[[[[w-[[[w-[[[w-[[[[w-[[[[[[[[[w-[w-[[w-]]]()\[\]{};:“,?«»””)/i; 或者(稍微复杂一点)

[代码>var-reg勒勒勒索+新的政府监管层(代码>var-reg勒勒索+新的监管层(代码>var R-reg勒索+代码>var-reg勒索+新的监管层(代码>var R-reg勒索+新的监管层(新的监管层)将)新的监管层(新的监管层(以下以下以下)的(((以下以下以下以下:::::::::::[a-a-a-a-z[a-a-a-a-z[a-a-a-a-z[[a-a-a-z[[[[[a-a-a-z[[[[[[a-a-a-a-z[[[[[a-a-a-a-a-z[[[[[[[[[[a-a-a-a-z[[[[[[[[[a-a-a-a-a-z[[[[[[[[)|[^\\s`!()\[\]{};:“\”,“«»””),“i”);
“没有逐字记录,它会给我带来错误”你能详细说明这意味着什么以及你的错误是什么吗?为什么你要使用
regex
来提取
url
?@theu Land\u Devils\u SriLanka否则你会如何识别给定字符串中的url模式。字符串有多个url。@正则表达式用于经常出现的模式。.不应使用正则表达式解析html中的url,因为它从未用于此目的。
html
不严格(除了
xhtml
)而且肯定会破坏你的代码…你最好使用一个解析器,比如..即使你的字符串不是html,你仍然能够提取所有的url'shtmlagilitypack是一个服务器端解决方案,我需要客户端解决方案
var regexToken = new RegExp("\\b((?:[a-z][\\w-]+:(?:/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\"\".,<>?«»“”‘’]))", "i");