用 preg_match 拆分字符串
Split String With preg_match
我有字符串:
$productList="
Saluran Dua(Bothway)-(TAN007);
Speedy Password-(INET PASS);
Memo-(T-Memo);
7-pib r-10/10-(AM);
FBI (R/N/M)-(Rr/R(A));
";
我想要这样的结果:
Array(
[0]=>TAN007
[1]=>INET PASS
[2]=>T-Memo
[3]=>AM
[4]=>Rr/R(A)
);
我用过:
$separator = '/\-\(([A-z ]*)\)/';
preg_match_all($separator, $productList, $match);
$value=$match[1];
但结果:
Array(
[0]=>INET PASS
[1]=>AM
);
一定是代码有误,谁能帮帮我?
试试这个 ReGex
$separator = '#\-\(([A-Za-z0-9/\-\(\) ]*)\)#';
第 1 行需要 0-9
对于第 3 行,您需要一个 - 输入和
在最后一行你需要 ()
试试这个
#\-\(([a-zA-Z/0-9(\)\- ]*)\)#
您的 regex
没有包含您要捕获的文本中可能出现的所有字符。
正确的regex
是:
$match = array();
preg_match_all('/-\((.*)\);/', $productList, $match);
解释(从里到外):
.*
匹配任何内容;
(.*)
是上面放在括号中的表达式,用于捕获 $match[1]
; 中的匹配项
-\((.*)\);
是上下文中的上面:如果它前面是-(
,后面是);
,它匹配;括号被转义以使用其字面值而不是其特殊的 regex
解释;
- 不需要在正则表达式中转义
-
;它只有在字符范围 ([A-Z]
, f.e.) 内使用时才有特殊解释,但即使在那里,如果破折号 (-
) 紧跟在 [
之后或者就在 ]
之前,那么它没有特殊含义;例如[-A-Z]
表示:破折号 (-
) 或任何大写字母(A
到 Z
)。
现在,print_r($match[1]);
看起来像这样:
Array
(
[0] => TAN007
[1] => INET PASS
[2] => T-Memo
[3] => AM
[4] => Rr/R(A)
)
我有字符串:
$productList="
Saluran Dua(Bothway)-(TAN007);
Speedy Password-(INET PASS);
Memo-(T-Memo);
7-pib r-10/10-(AM);
FBI (R/N/M)-(Rr/R(A));
";
我想要这样的结果:
Array(
[0]=>TAN007
[1]=>INET PASS
[2]=>T-Memo
[3]=>AM
[4]=>Rr/R(A)
);
我用过:
$separator = '/\-\(([A-z ]*)\)/';
preg_match_all($separator, $productList, $match);
$value=$match[1];
但结果:
Array(
[0]=>INET PASS
[1]=>AM
);
一定是代码有误,谁能帮帮我?
试试这个 ReGex
$separator = '#\-\(([A-Za-z0-9/\-\(\) ]*)\)#';
第 1 行需要 0-9
对于第 3 行,您需要一个 - 输入和
在最后一行你需要 () 试试这个
#\-\(([a-zA-Z/0-9(\)\- ]*)\)#
您的 regex
没有包含您要捕获的文本中可能出现的所有字符。
正确的regex
是:
$match = array();
preg_match_all('/-\((.*)\);/', $productList, $match);
解释(从里到外):
.*
匹配任何内容;(.*)
是上面放在括号中的表达式,用于捕获$match[1]
; 中的匹配项
-\((.*)\);
是上下文中的上面:如果它前面是-(
,后面是);
,它匹配;括号被转义以使用其字面值而不是其特殊的regex
解释;- 不需要在正则表达式中转义
-
;它只有在字符范围 ([A-Z]
, f.e.) 内使用时才有特殊解释,但即使在那里,如果破折号 (-
) 紧跟在[
之后或者就在]
之前,那么它没有特殊含义;例如[-A-Z]
表示:破折号 (-
) 或任何大写字母(A
到Z
)。
现在,print_r($match[1]);
看起来像这样:
Array
(
[0] => TAN007
[1] => INET PASS
[2] => T-Memo
[3] => AM
[4] => Rr/R(A)
)