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