我对需要从搜索请求(可能包括数字和/或特殊字符)中提取由加号句子分隔的两个查询php
的正则表达式感到困惑。+
任何人都可以阐明这种行为吗?
$string = 'string1+String-2';
([a-zA-Z0-9-_]+[a-zA-Z0-9-_])
Array
(
[0] => string1
[1] => string1
)
我对需要从搜索请求(可能包括数字和/或特殊字符)中提取由加号句子分隔的两个查询php
的正则表达式感到困惑。+
任何人都可以阐明这种行为吗?
$string = 'string1+String-2';
([a-zA-Z0-9-_]+[a-zA-Z0-9-_])
Array
(
[0] => string1
[1] => string1
)
另一种方法是使用explode()
$string = 'string1+String-2';
$parts=explode("+",$string);
print_r($parts);
输出:
Array
(
[0] => string1
[1] => String-2
)
在这里查看更多:
你可以这样做
/([\w-]+\+[\w-]+)/
方括号后面的未转义+
表示:“一次或多次之前的表达式”转义\+
代表纯+
.
假设您正在使用函数preg_match:
您的模式([a-zA-Z0-9-_]+[a-zA-Z0-9-_])
是将任何字母或数字匹配一次或多次,然后是字母或数字。
所以它匹配 onstring
后跟1
. 您看到的输出是函数按照它所说的做。
如果提供了匹配项,则将其填充为搜索结果。$matches[0] 将包含与完整模式匹配的文本,$matches 1将包含与第一个捕获的带括号的子模式匹配的文本,依此类推。
我猜您可能打算使用 preg_match_all 来获取所有匹配模式。