Javascript 正则表达式匹配长字符串中的URL

Javascript 正则表达式匹配长字符串中的URL,javascript,c#,regex,Javascript,C#,Regex,我这里有一个字符串: 你好,我想$1000(例如删除这些括号)$test$asdf[并删除这些括号]在这里询问3D产品名称的价格。目前,我们在这里有另一个产品名称,我相信其准确度约为0.0005 199 200。这是一个测试 我在这里链接了一个正则表达式: 其中包含此正则表达式: [^\w\s|https?:\/\/.\-*\s]|\W*\b\d+(?:\.\d+)?\b 我现在要做的是让它匹配整个URL。似乎我的| https?:\/\/.\-*\s正在查找url,但它忽略了它,可能是因为该

我这里有一个字符串:

你好,我想$1000(例如删除这些括号)$test$asdf[并删除这些括号]在这里询问3D产品名称的价格。目前,我们在这里有另一个产品名称,我相信其准确度约为0.0005 199 200。这是一个测试

我在这里链接了一个正则表达式:

其中包含此正则表达式:

[^\w\s|https?:\/\/.\-*\s]|\W*\b\d+(?:\.\d+)?\b

我现在要做的是让它匹配整个URL。似乎我的
| https?:\/\/.\-*\s
正在查找url,但它忽略了它,可能是因为该集合开头的
^
?我需要一些帮助,让它匹配字符串中的URL。

尝试以下方法:

[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)

您可以试试这个正则表达式:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)

您可以使用以下正则表达式

((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)

我已经用你的绳子测试过了。在

上测试它除了我的评论之外,您还可以提出一个正则表达式,如:

~(https?://\S+)~
# start / end with the tilde ~ as delimiters
# look for http/https, followed by ://
# match anything that is not a whitespace
# capture everything into a group
对于JavaScript,这可以归结为(请注意转义的前斜杠):

这不是很具体,而且很大程度上取决于您的输入字符串(也可以匹配URL的无效字符)。

这是一个测试字符串:)和
https?
应该同时捕获这两个字符串?这实际上取决于您的输入字符串。你也可以想出一些东西,比如
~(https?://\S+)
,尽管不适用于JavaScript,但无可否认(你的问题用不同的语言标记)。谢谢你,但是我如何将它与我最初链接的正则表达式结合起来呢?只需将
(https?:\/\/\S+)
添加到它并不会添加这种支持。这是我的初始正则表达式:
[^\w\s]\w*\b\d+(?:\.\d+)\b
@mariocatch:你到底想做什么?上面的正则表达式只匹配以
http://
https://
开头的字符串。您最初的请求是匹配一个URL。将所有逻辑放到一个正则表达式中,在大多数情况下都会使其无法读取。我正在尝试获取所有已存在的内容,并使其与该字符串中的URL匹配。删除特殊字符,允许术语
3D
传递,删除金额,并删除URL。我不关心可读的正则表达式,因为我只需要在最后对同一个字符串应用多个规则。看起来这个正则表达式很有效,将您的正则表达式添加到我的正则表达式中:
(https?:\/\/\S+)[^\w\S]\b\d+(?:\.\d+)\b
这里看到:@mariocatch:很高兴帮助:-)这删除了我最初的正则表达式逻辑。我的问题是将我所拥有的与URL匹配器相结合。你想完整地做什么?我正在尝试获取所有的内容,并使其与该字符串中的URL匹配。删除特殊字符,允许术语
3D
传递,删除金额,并删除URL。
(https?:\/\/\S+)