preg_match PHP 模式搜索令牌
preg_match PHP pattern search for tokens
实际上,我正在搜索一个字符串以查找遵循模式@@text@@ 的特定标记,并希望从该字符串中检索标记到一个新数组中:
my address is @@address@@ and my house is at @@street@@ and the number is @@number@@
我想要那个句子中的标记作为一个数组:
array[0] = @@address@@
array[1] = @@street@@
array[2] = @@number@@
$input = 'my address is @@address@@ and my house is at @@street@@ and the number is @@number@@ or so ';
preg_match('/@@[^a-z]@@/', $input, $output);
echo $output[0];
echo $output[1];
实际上我所有的令牌都被两个@@包围,但令牌的字符数和项目数可能会有所不同。
任何想法
使用preg_match_all()
获取所有匹配项。 preg_match()
只是 returns 第一场比赛。
你的正则表达式是错误的。 [^a-z]
匹配所有 除了 字母,但您想要匹配字母。并且您需要 +
量词来匹配多个。
preg_match_all('/@@[a-z]+@@/', $input, $matches);
$output = $matches[0];
var_dump($output);
实际上,我正在搜索一个字符串以查找遵循模式@@text@@ 的特定标记,并希望从该字符串中检索标记到一个新数组中:
my address is @@address@@ and my house is at @@street@@ and the number is @@number@@
我想要那个句子中的标记作为一个数组:
array[0] = @@address@@
array[1] = @@street@@
array[2] = @@number@@
$input = 'my address is @@address@@ and my house is at @@street@@ and the number is @@number@@ or so ';
preg_match('/@@[^a-z]@@/', $input, $output);
echo $output[0];
echo $output[1];
实际上我所有的令牌都被两个@@包围,但令牌的字符数和项目数可能会有所不同。 任何想法
使用preg_match_all()
获取所有匹配项。 preg_match()
只是 returns 第一场比赛。
你的正则表达式是错误的。 [^a-z]
匹配所有 除了 字母,但您想要匹配字母。并且您需要 +
量词来匹配多个。
preg_match_all('/@@[a-z]+@@/', $input, $matches);
$output = $matches[0];
var_dump($output);