Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,我想知道如何拆分此字符串: 命令arg1 arg2 arg3 在此数组中: [arg1,arg2,arg3] [arg1、arg2、arg3] 但是如果用户键入: 命令“arg1仍然arg1”arg2 该数组将为: [arg1 still arg1, arg2] [arg1仍然arg1,arg2] 使用PHP时,请使用如下正则表达式: ^[^ ]+(?: ("[^"]+"|[^ ]+))*$ 表达式“[^”]+“|[^]+匹配以引号开头和结尾的参数,或者匹配以下一个空格结尾的参数。使用如下正则

我想知道如何拆分此字符串:
命令arg1 arg2 arg3
在此数组中:

[arg1,arg2,arg3] [arg1、arg2、arg3] 但是如果用户键入:
命令“arg1仍然arg1”arg2
该数组将为:

[arg1 still arg1, arg2] [arg1仍然arg1,arg2]
使用PHP时,请使用如下正则表达式:

^[^ ]+(?: ("[^"]+"|[^ ]+))*$

表达式
“[^”]+“|[^]+
匹配以引号开头和结尾的参数,或者匹配以下一个空格结尾的参数。

使用如下正则表达式:

^[^ ]+(?: ("[^"]+"|[^ ]+))*$

表达式
“[^”]+“|[^]+
匹配以引号开头和结尾的参数,或者匹配以下一个空格结尾的参数。

我相信您可能希望在php中使用类似strtok的内容,而不是正则表达式


请参阅文档中的注释:

我相信您可能希望在php中使用类似strtok的东西,而不是正则表达式


请参阅文档中的以下注释:

PHP会自动执行您的请求

我有PHP5.3,并调用此代码

<?php
  print $argc . "\n";

  for ($i = 0; $i < $argc; $i++) {
    print $argv[$i] . "\n";
  }
?>

去掉第一个参数,
$argv
包含您想要的所有参数。使用
array\u pop()

PHP可以很容易地做到这一点。PHP会自动执行您的请求

我有PHP5.3,并调用此代码

<?php
  print $argc . "\n";

  for ($i = 0; $i < $argc; $i++) {
    print $argv[$i] . "\n";
  }
?>

去掉第一个参数,
$argv
包含您想要的所有参数。这可以通过
array_pop()

轻松完成。这不起作用,我使用的是preg_split('^[^]+(?:(“[^”]+“[^]+)*$,$text);错误消息:未知修饰符“]”如果您正在为
preg\u replace
使用与Perl兼容的正则表达式,则需要用分隔符包围正则表达式,例如//iirc所有
preg\u
函数都需要分隔正则表达式-将正则表达式包装在
/
标记或其他一些分隔符中。代码:echo 1 2 3结果:数组([0]=>[1]=>)这不起作用,我正在使用preg_split(“^[^]+(?:(“[^”]+“|[^]+)*$”,$text);错误消息:未知修饰符']'如果您正在为
preg\u replace
使用与Perl兼容的正则表达式,则需要用分隔符包围正则表达式,例如//iirc所有
preg\u
函数都需要分隔正则表达式-将正则表达式包装在
/
标记或其他一些分隔符中。代码:echo 1 2 3结果:数组([0]=>[1] =>)我将代码更改为使用
$argc
(我很少使用这些变量,我总是忘记
$argc
)。我解释说,您的意思是在从CLI执行时解析传递给PHP的参数。我将代码更改为使用
$argc
(我很少使用这些变量,我总是忘记
$argc
)。我解释说,您的意思是在从CLI执行时解析传递给PHP的参数。