PHP解析用户名的文本块
我想要一块如下所示的文本:PHP解析用户名的文本块,php,Php,我想要一块如下所示的文本: Hey @max. How are you? 并且能够辨别“单词”@max是否在其中。因为这种情况,我说: Hey @max2. How are you? 我不想将@max和@max2都注册为存在于该文本块中,只要@max2 编辑: 我试图在文本块中识别用户提及的内容。因此,例如,如果我让用户['max',max2',maxh']循环,我只想返回精确的匹配max是max2和maxh的子字符串,因此当用户提到max2时,我只想检测用户max2,而不是用户max 一些
Hey @max. How are you?
并且能够辨别“单词”@max
是否在其中。因为这种情况,我说:
Hey @max2. How are you?
我不想将@max
和@max2
都注册为存在于该文本块中,只要@max2
编辑:
我试图在文本块中识别用户提及的内容。因此,例如,如果我让用户['max',max2',maxh']
循环,我只想返回精确的匹配max
是max2
和maxh
的子字符串,因此当用户提到max2
时,我只想检测用户max2
,而不是用户max
一些示例代码:
foreach ($userNames as $userName) {
if (/* username is present in $text... */) {
//notify user
}
}
已编辑 您可以使用
preg\u match\u all
返回给定正则表达式的所有匹配项。您可以使用/@[a-zA-Z0-9.-]+/
匹配以下用户名变体:
@max
@max2
@max23_
@max2-
@231
@m2
...
下面是一个工作示例:
代码
<?php
$input_lines = 'Hey @max2. How are you?';
preg_match_all("/@[a-zA-Z0-9_-]+/", $input_lines, $output_array);
// Output the results
print_r($output_array);
?>
/@\w+/
是。。。我想你需要什么?你的问题很难理解。@NiettheDarkAbsol怎么样?谢谢你的回答。我认为这与我最初的要求相反,但我不清楚。也许现在更清楚了?非常感谢。同样,您只需要修改正则表达式以匹配任何形式的用户名。我编辑了答案以符合你的询问。希望对你有所帮助。你的编辑让事情变得更清楚了。这对我很有用。谢谢
Array
(
[0] => Array
(
[0] => @max2
)
)