如何匹配URL但不在括号中
How to match URLs but not in brackets
我的URL可能在这样的括号内:
[[!;;;;http://example.com/foo]some text]
如何匹配URL,而不是当它们在这样的括号中时,some text
也可能是URL。我;需要将所有URL替换为该格式。
到目前为止,我有匹配URL的正则表达式:
var url_re = /('bhttps?:'/'/(?:(?:(?!&[^;]+;)|(?=&))[^'s"'<>']'[)])+'b)/gi;
示例输入:
http://example.com/foo [[!;;;;http://example.com/foo]some text] http://example.com/foo
输出:
[[!;;;;http://example.com/foo]http://example.com/foo] [[!;;;;http://example.com/foo]some text] [[!;;;;http://example.com/foo]http://example.com/foo]
您可以添加一个(?![^[']]*])
负前瞻,以避免在没有任何其他[
或]
:的关闭]
之前匹配模式
'b(https?:'/'/(?:(?:(?!&[^;]+;)|(?=&))[^'s"'<>'][)])+)'b(?![^[']]*])
并用CCD_ 6代替。查看regex演示
另一种选择是匹配并捕获[...[...]...]
中的所有内容,然后在String.replace()
中使用回调来正确处理每个捕获,但以上内容看起来更"干净"、更直接。
相关文章:
- 如何使用iFrame在不同的域中匹配URL
- 如何匹配URL但不在括号中
- Regex以匹配url中的单个单词
- JS Regex帮助匹配URL
- 默认弹出匹配URL
- Javascript RegEx匹配URL's,但不包括图像
- 使用JavaScript匹配URL中的最后一个单词
- 使用regex匹配url中的前缀
- Regex根据单词匹配URL
- 将字符串中的URL替换为包含匹配URL的HTML字符串的Handlebar帮助程序
- JavaScript 正则表达式以匹配 URL
- JavaScript正则表达式匹配URL
- 将 PHP 函数的 3 小位重构为 JS - 数组,如果为空且匹配 url
- 匹配 URL 的 JavaScript 问题
- Regex右匹配url与DOT在最后
- 匹配URL中路径的正确方式?(8)
- 如何匹配url值对中的数字
- Javascript:匹配URL的片段
- 匹配URL的Regex以子域开头,而不是“”;www”;
- 如何匹配url中可以以querystring结尾的文件扩展名