Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Php 正则表达式将用户名转换为链接,就像Twitter一样_Php_Regex_Twitter - Fatal编程技术网

Php 正则表达式将用户名转换为链接,就像Twitter一样

Php 正则表达式将用户名转换为链接,就像Twitter一样,php,regex,twitter,Php,Regex,Twitter,在推特上 当你写@moustafa时 将更改为 现在我想做同样的事情 当写入@moustafa+space时,其更改仅限于@moustafa您正在寻找与@username匹配的正则表达式,其中username没有空格?您可以使用: @[^ ]+ 如果您知道用户名中允许的字符,则可以更具体,例如,如果它们必须是字母数字: @[A-Za-z0-9]+ 您正在寻找与@username匹配的正则表达式,其中username没有空格?您可以使用: @[^ ]+ 如果您知道用户名中允许的字符,则可以更

在推特上 当你写@moustafa时 将更改为
现在我想做同样的事情
当写入@moustafa+space时,其更改仅限于@moustafa

您正在寻找与@username匹配的正则表达式,其中username没有空格?您可以使用:

@[^ ]+
如果您知道用户名中允许的字符,则可以更具体,例如,如果它们必须是字母数字:

@[A-Za-z0-9]+

您正在寻找与@username匹配的正则表达式,其中username没有空格?您可以使用:

@[^ ]+
如果您知道用户名中允许的字符,则可以更具体,例如,如果它们必须是字母数字:

@[A-Za-z0-9]+

为什么不使用Twitter最近发布的?

为什么不使用Twitter最近发布的?

PHP中的正则表达式只是以相同字符开头和结尾的字符串。按照惯例,这个字符是/

因此,您可以使用以下内容作为许多php正则表达式函数的参数:

不是空间:

"/[^ ]+/" 
仅字母数字:

"/[A-Za-z0-9]+/"

PHP中的正则表达式只是以相同字符开头和结尾的字符串。按照惯例,这个字符是/

因此,您可以使用以下内容作为许多php正则表达式函数的参数:

不是空间:

"/[^ ]+/" 
仅字母数字:

"/[A-Za-z0-9]+/"

可以使用的一个正则表达式(不知羞耻地从另一个答案中提到的中窃取)是:

\B\@([a-zA-Z0-9_]{1,20})
这将查找非单词边界(以防止
a@b
[即来自匹配的电子邮件],然后是
@
,然后是该字符类中的一个到20个(含)字符。当然,在其他答案中,除了太空路线之外,其他任何东西都可以使用;这在很大程度上取决于
@标签
的标签部分允许(dis)哪些值

要在PHP中使用突出显示的正则表达式,可以使用如下内容替换字符串
$subject

$subject = 'Hello, @moustafa how are you today?';
echo preg_replace('/\B\@([a-zA-Z0-9_]{1,20})/', '<a href="user/$1">$0</a>', $subject);
$subject='Hello,@moustafa你今天好吗?';
echo preg_替换('/\B\@([a-zA-Z0-9}{1,20})/',''$subject);
上述输出类似于:

Hello, <a href="user/moustafa">@moustafa</a> how are you today?
你好,今天好吗?

可以使用的一个正则表达式(不知羞耻地从另一个答案中提到的正则表达式中窃取)是:

\B\@([a-zA-Z0-9_]{1,20})
这将查找非单词边界(以防止
a@b
[即来自匹配的电子邮件],然后是
@
,然后是该字符类中的一个到20个(含)字符。当然,在其他答案中,除了太空路线之外,其他任何东西都可以使用;这在很大程度上取决于
@标签
的标签部分允许(dis)哪些值

要在PHP中使用突出显示的正则表达式,可以使用如下内容替换字符串
$subject

$subject = 'Hello, @moustafa how are you today?';
echo preg_replace('/\B\@([a-zA-Z0-9_]{1,20})/', '<a href="user/$1">$0</a>', $subject);
$subject='Hello,@moustafa你今天好吗?';
echo preg_替换('/\B\@([a-zA-Z0-9}{1,20})/',''$subject);
上述输出类似于:

Hello, <a href="user/moustafa">@moustafa</a> how are you today?
你好,今天好吗?

有几个库可以为您执行此选择和链接。目前我知道mzsanford的Github帐户下有Java、Ruby和PHP库:

有几个库为您执行此选择和链接。目前我知道mzsanford的Github帐户下有Java、Ruby和PHP库:

这是一个javascript库,你可以在网页上运行它来做你想做的事情。这是一个javascript库,你可以在网页上运行它来做你想做的事情。他们实际上会将它改为@。他们实际上会将它改为@。