-1

我正在尝试根据它们是字母数字或具有下划线来提取数组中的一些值。它没有通过。这就是我提供的脚本:

...
  [183]=>
  string(23) "/games/boomerang_devils"
  [184]=>
  string(26) "/games/krushuna_waterfalls"
  [185]=>
  string(21) "/games/super_drift_3d"
  [186]=>
  string(34) "/games/around_the_world_in_80_days"
  [187]=>
  string(24) "/games/governor_of_poker"
  [188]=>
  string(21) "/games/shoot_on_sight"
...

编码:

if (preg_match('/\/games\/[a-zA-Z0-9_]/', $array['item'])) {
    // Add to DB
}

但它没有捡起来。谁能发现我做错了什么?

4

2 回答 2

1

preg_match()不适用于您的$array变量。它需要一个字符串。因此,要么遍历您的列表,然后测试每个字符串。或用于preg_grep()过滤您的数组以查找匹配条目。

除此之外,您忘记了量词+

 /\/games\/[a-zA-Z0-9_]+/

可能还有主题开始^$结束锚点。并且\w可以取代你的角色列表。

于 2012-11-16T03:18:12.917 回答
0
[a-zA-Z0-9_] is one character only.

你需要通过添加重复字符+

if (preg_match('/\/games\/[a-zA-Z0-9_]+/', $array)) 
{
    // Add to DB
}
于 2012-11-16T03:15:24.947 回答