寻找preg_match_all
来提取文本中找到的任何用户名。示例文本是' last_name,first_name用户名:bjorge,用户名philip kardashian,kim用户名:mercury,freddie'
我试图在本文中捕获的内容:
-bjorge
-philip
-mercury
我尝试了这个,但没有去:
preg_match_all("/(Username:|Username)\s+?(\S+)/i", $input_lines, $output_array);
这是我从我尝试过的输出。
array(30=>last_name, first_name 1=>last_name 2=>first_name)
array(30=>bjorge, philip 1=>bjorge 2=>philip)
array(30=>kardashian, kim 1=>kardashian 2=>kim)
array(30=>mercury, freddie 1=>mercury 2=>freddie)
答案 0 :(得分:1)
在字符串'last_name, first_name Username:bjorge, Username philip kardashian, kim username: mercury, freddie'
中,bjorge
之前没有空格。
使用:
preg_match_all("/(Username:|Username)\s*(\S+)/i", $input_lines, $output_array);
// here __^
我简化了你的正则表达式:
$in = 'last_name, first_name Username:bjorge, Username philip kardashian, kim username: mercury, freddie';
preg_match_all("/Username:?\s*(\S+)/i", $in, $out);
print_r($out);
<强>输出:强>
Array
(
[0] => Array
(
[0] => Username:bjorge,
[1] => Username philip
[2] => username: mercury,
)
[1] => Array
(
[0] => bjorge,
[1] => philip
[2] => mercury,
)
)