Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中带数组修改的正则表达式_Php_Regex - Fatal编程技术网

php中带数组修改的正则表达式

php中带数组修改的正则表达式,php,regex,Php,Regex,这是我的阵列 Array ( [0] => administrators (Members can fully administer the computer/domain) [1] => SID: S-1-5-32-544 [2] => No members [3] => backup operators (Members can bypass file security to back up files) [4] =>

这是我的阵列

Array (

    [0] => administrators (Members can fully administer the computer/domain)
    [1] =>  SID: S-1-5-32-544
    [2] =>  No members
    [3] => backup operators (Members can bypass file security to back up files)
    [4] =>  SID: S-1-5-32-551
    [5] =>  No members
    [6] => power users (Members can share directories)
    [7] =>  SID: S-1-5-32-547
    [8] =>  No members
    [9] => john (qwerty)
    [10] =>     SID: S-1-5-21-418404614-1514096366-3962945920-2147483748
    [11] =>     Members:
    [12] =>         \vijay
    [13] => bishop (abcd)
    [14] =>     SID: S-1-5-21-418404614-1514096366-3962945920-2147483748
    [15] =>     Members:
    [16] =>         \ram
    [17] =>         \vijay
)
现在我想使用php中的任何preg函数从这个名为vijay的数组中进行搜索 它将在这个数组中搜索vijay,但我的问题是我需要搜索vijay,我需要像vijay所在的位置一样的输出,我需要在一个数组中使用组名,如下所示 vijay可在组1和组2中使用(阵列[9]第二阵列[13]) 所以我需要下面使用正则表达式的输出

Array (

     [0] => john
     [1] => bishop
)

thnku提前如果您没有从问题plz评论中得到任何信息,我将清除u

我认为最简单的方法是在数组上创建foreach,然后在每个索引上使用函数pref_match:

文件:

希望这能帮助你

亲切问候,

编辑:我还找到了这个链接,它可以帮助您:

要做到这一点:

foreach ($your_array as $item){
  if (strpos($item, 'group') !== FALSE){
     echo $item;
  }
  if (strpos($item, 'vijay' !== FALSE){
     echo $item;
  }
}
这是一个简单的解决方案,我现在无法测试它,但这是一个关于preg_匹配的想法,如果您想将结果发送到数组,以便稍后在代码中进行操作,可以使用它

否则,如果您只需要以快速、脏的方式显示,则可以使用strpos,它将给出子字符串在字符串中的位置(上面示例中的一项)

希望这对你有帮助

PS:这只是一个例子,有多种方法可以得到它,这是最简单的方法之一

编辑:

因此,在这种情况下:

$groupName = "";
foreach ($your_array as $item){
  if (strpos($item, '(') !== FALSE && strpos($item, ')') !== FALSE){
     $groupName = $item;
  }
  if (strpos($item, 'vijay' !== FALSE){
     echo "This user '$item' belongs to the group '$groupName'";
     //Normally this structure keeps the same you don't need the next line:
     $groupName = ""; //optional
  }
}

关于,

好主意,但我需要正则表达式,因为vijay可以是组中任何位置的任何偏移量,foreach对我没有多大帮助。事实上,你需要显示“vijay”属于哪个组吗?你能告诉我怎么做吗,我是php新手。正则表达式也不太好。我犯了一个错误,我没有提到group1和group2假设组名,它可以是任何名称,所以我编辑了这个问题,所以会得到ideaFYI,正则表达式的标记通常是,而不是。但我看不出这是一个正则表达式问题。使用正则表达式,你可以在新数组中进行精确的单词搜索和剪切