php 方括号在正则表达式中有什么特殊含义?

xqkwcwgp  于 2023-05-27  发布在  PHP
关注(0)|答案(6)|浏览(125)

谁能解释一下这个代码分割(“[ ]+",$s);谢谢

$s = "Split this sentence by spaces";
$words = split("[ ]+", $s);
print_r($words);

Output:
Array
(
    [0] => Split
    [1] => this
    [2] => sentence
    [3] => by
    [4] => spaces
)
xzv2uavs

xzv2uavs1#

split的第一个参数是一个正则表达式模式,在本例中,它实际上是说“尽可能多地匹配空格字符”。

**注意:split从PHP 5.3开始就被弃用了,所以我不建议使用它。

你可以通过以下方式达到同样的效果:

$words = explode(" ", $s);

请参阅explode manual page了解更多信息。

q0qdq0h2

q0qdq0h22#

通过正则表达式将字符串拆分为数组。This function从PHP 5.3.0起已弃用。非常不鼓励依赖此功能。
我重新推荐“爆炸”功能,而不是“分裂”:

$s = "Split this sentence by spaces";
$words = explode(" ", $s);

print_r($words);

输出:

array(5) {
 [0]=>
 string(5) "Split"
 [1]=>
 string(4) "this"
 [2]=>
 string(8) "sentence"
 [3]=>
 string(2) "by"
 [4]=>
 string(6) "spaces"
}
bvjxkvbb

bvjxkvbb3#

它通过正则表达式“[ ]+”将给定的字符串拆分成一个数组,该表达式匹配一个或多个空格。从技术上讲,它可以只是“+”,但由于它是一个空格,它与括号更具可读性。
请注意,split函数从5.3版开始就不再重要了,您应该使用preg_split。

kxeu7u2r

kxeu7u2r4#

都在documentation里。
split的第一个参数是一个正则表达式,它描述了分隔符的样子。在你的例子中,"[ ]+"(也可以简单地写为" +")表示“一个或多个空格”。

gcmastyq

gcmastyq5#

"[ ]+"

是一个正则表达式。它将根据空格分割字符串。

wlwcrazw

wlwcrazw6#

split函数也可以将正则表达式作为其参数。在本例中,指定[ ]+,这意味着:

[ ]   // a character class is used with a space
 +    // find one or more instances of space

因此,当您这样做时:

$words = split("[ ]+", $s);

创建一个数组并将其存储在$words变量中,所有字母都由空格分隔。

详细信息:

$s = "Split this sentence by spaces";
$words = explode(' ', $s);
print_r($words);

相关问题