我想使用preg_split在双正斜杠(//)和问号(?)上拆分字符串。我可以像这样使用一个正斜杠:
preg_split('[\/]', $string);
但是
preg_split('[\//]', $string);
or
preg_split('[\/\/]', $string);
不起作用。
如何在表达式中使用双正斜杠?
答案 0 :(得分:3)
$str= 'Hi//Hello?New World/';
$splits = preg_split( '@(\/\/|\?)@', $str );
print_r($splits);
<强> OUTPUT :
强>
Array
(
[0] => Hi
[1] => Hello
[2] => New World/
)
答案 1 :(得分:2)
/ and ?
是为正则表达式保留的,你需要在字面上使用它们时将它们转义。
$str = 'test1 // test2 // test3 ';
$array = preg_split("/\/\//", $str);
print_r($array);
对吗?你可以用作
$str = 'test1 ? test2 ? test3 ';
$array = preg_split("/\?/", $str);
print_r($array);
答案 2 :(得分:2)
您可以为正则表达式使用不同的分隔符。
<?php
$str = 'hello // world // goodbye ? foo ? bar';
$array = preg_split("!//!", $str);
print_r($array);
?>
对于问号,您可以使用字符类来封装它。您可以使用|
分隔一个或另一个。
$array = preg_split("!//|[?]!", $str);