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的参数。