正则表达式中的双正斜杠

时间:2014-05-06 07:13:20

标签: php regex preg-split

我想使用preg_split在双正斜杠(//)和问号(?)上拆分字符串。我可以像这样使用一个正斜杠:

preg_split('[\/]', $string);

但是

preg_split('[\//]', $string);
or
preg_split('[\/\/]', $string);

不起作用。

如何在表达式中使用双正斜杠?

3 个答案:

答案 0 :(得分:3)

正如您所见,字符串以两个正斜杠(//)和一个问号(?)分开。

$str= 'Hi//Hello?New World/';
$splits = preg_split( '@(\/\/|\?)@', $str );
print_r($splits);

<强> OUTPUT :

Array
(
    [0] => Hi
    [1] => Hello
    [2] => New World/
)

enter image description here

答案 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);