我想采取如下文字块:
Hey @max. How are you?
并且能够判断'{1}}是否在其中。我说的是,因为这种情况:
@max
我不想同时将Hey @max2. How are you?
和@max
注册为该@max2
个文本块。
编辑:
我正在尝试在一个文本块中识别用户提及。因此,例如,如果我有用户@max2
并且我遍历它们,我想只返回完全匹配。 ['max', 'max2', 'maxh']
是max
和max2
的子字符串,因此当用户提到maxh
时,我只想检测用户max2
,而不是用户{ {1}}
一些示例代码:
max2
答案 0 :(得分:2)
<强>被修改强>
您可以使用preg_match_all
返回给定正则表达式的所有匹配项。您可以使用/@[a-zA-Z0-9_-]+/
来匹配以下用户名变体:
@max
@max2
@max23_
@max2-
@231
@m2
...
这是一个有效的例子: http://www.phpliveregex.com/p/fNO
<强>代码强>
<?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);
?>
<强>输出强>
Array
(
[0] => Array
(
[0] => @max2
)
)