Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式:环绕@uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuhttp://______ 一次通过锚定标签? 相关(但略有不同):_Javascript_Regex_Bit.ly - Fatal编程技术网

Javascript正则表达式:环绕@uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuhttp://______ 一次通过锚定标签? 相关(但略有不同):

Javascript正则表达式:环绕@uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuhttp://______ 一次通过锚定标签? 相关(但略有不同):,javascript,regex,bit.ly,Javascript,Regex,Bit.ly,我想介绍一下@\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu、\uuuuuuuuuuuuuuuuuuuu和http://________一次通过锚定标签 例如,考虑这个推特消息: 敏捷的棕色狐狸@Spreadthemovie跳过了懒狗#牛 使用所需的正则表达式模式运行它将产生: The quick brown fox <a href="a">@Spreadthemovie</a> jumps over the lazy dog <a href="b"&

我想介绍一下
@\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuuu
http://________
一次通过锚定标签

例如,考虑这个推特消息:

敏捷的棕色狐狸@Spreadthemovie跳过了懒狗#牛

使用所需的正则表达式模式运行它将产生:

The quick brown fox <a href="a">@Spreadthemovie</a> jumps over the lazy
dog <a href="b">#cow</a> <a href="c">http://URL</a>
敏捷的棕色狐狸跳过懒惰的狐狸 狗 仅围绕以
@
#
http://
开头的单词,以便
dog@gmail.com
不会变成
dog@gmail.com

s/(?$1/g)
我想这样就可以了。如果前面有数字或字母,它将与@…、#…或http…不匹配,这将使电子邮件远离。请根据输入集进行测试,并报告任何失败,以便我可以使用它

特别是URL,它相当难用。现在我犯了保守的错误。如果你愿意的话,它可以改为只在点、空格和括号处停止

现在,对于@、#和http的不同链接,您必须使用一个函数进行替换,如另一个答案所示

通过三次传球,只需执行以下操作:

s/(?<!\w)(http:\/\/[\w\/\.?=]*\w)/<a href="c">$1<\/a>/g
s/(?<!\w)(#\w*)/<a href="b">$1<\/a>/g
s/(?<!\w)(@\w*)/<a href="a">$1<\/a>/g
s/(?$1/g)
s/(?$1/g)
s/(?$1/g)
当你想拥有更大或更精细的控制时,使用函数是一个好主意。如果你想链接的锚定标签中有不同的href,这种方法更容易


查看更多信息。

感谢您的回复——很抱歉,我忘记了href。我如何使链接在其锚定标记中具有不同的href?您真的应该使用函数替换。它提供了更好的控制,以便您可以确定要替换的内容。我将如何使用/(?$1/g等?这是replace的第一个参数吗?假设我有一个名为strSee的变量,另一个答案。这是Javascript(我假设).我的只是模式。不过,就个人而言,我认为我的模式更优越。不过,您可以将我的模式与George的代码一起使用。\w不会得到URL中可能出现的斜线和圆点。此外,您忘记了$1。您将使用该替换项删除内容。我以前使用过$2,这会匹配。我进行了修改以使regexp更高效。\b不起作用,因为@和#是单词的边界。我认为负面的后面看是最好的方式。哎呀!javascript没有后面看?太糟糕了!因为在分组中指定了@和#,所以\b仍然不起作用吗?我得说,你是否必须使用特定的文本作为示例?
s/(?<!\w)(http:\/\/[\w\/\.?=]*\w)/<a href="c">$1<\/a>/g
s/(?<!\w)(#\w*)/<a href="b">$1<\/a>/g
s/(?<!\w)(@\w*)/<a href="a">$1<\/a>/g
var sample = "@sample";
sample = sample.replace(/[^\s+-+.+](@\w+|#\w+|http://[\w\./]+)[$\s+-+.+]/g, "<a>$1</a>");
var sample = "@sample";
sample = sample.replace(/[^\s+-+.+](@\w+|#\w+|http://[\w\./]+)[$\s+-+.+]/g, function(str) {
    var href="";
    if(str.indeoxOf("#") !== -1)
        href=str;
    else if(str.indexOf("@") !== -1)
      ...
    return "<a href="+href+">"+str+"</a>";
});