相关疑难解决方法(0)

按分隔符拆分字符串,但如果它已转义则不会

如何通过分隔符拆分字符串,但如果它被转义则不能?例如,我有一个字符串:

1|2\|2|3\\|4\\\|4
Run Code Online (Sandbox Code Playgroud)

分隔符是|和转义分隔符\|.此外,我想忽略逃脱反斜杠,因此\\||仍然是一个分隔符.

所以使用上面的字符串,结果应该是:

[0] => 1
[1] => 2\|2
[2] => 3\\
[3] => 4\\\|4
Run Code Online (Sandbox Code Playgroud)

php regex preg-split

52
推荐指数
2
解决办法
4605
查看次数

在PHP中解析命令参数

是否存在从PHP解析命令参数的本地"PHP方式" string?例如,给出以下内容string:

foo "bar \"baz\"" '\'quux\''
Run Code Online (Sandbox Code Playgroud)

我想创建以下内容array:

array(3) {
  [0] =>
  string(3) "foo"
  [1] =>
  string(7) "bar "baz""
  [2] =>
  string(6) "'quux'"
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过利用token_get_all(),但PHP的变量插值语法(例如"foo ${bar} baz")在我的游行中几乎下雨了.

我完全知道我可以编写自己的解析器.命令参数语法是超级简单的,但如果有一个现有的本地方法来做,我更喜欢滚动我自己.

编辑:请注意,我正在寻找解析来自a string,而不是shell /命令行的参数.


编辑#2:下面是一个更全面的预期输入示例 - >参数输出:

foo -> foo
"foo" -> foo
'foo' -> foo
"foo'foo" -> foo'foo
'foo"foo' -> foo"foo
"foo\"foo" -> foo"foo
'foo\'foo' -> foo'foo
"foo\foo" -> foo\foo
"foo\\foo" -> foo\foo
"foo foo" -> foo foo
'foo foo' -> foo foo
Run Code Online (Sandbox Code Playgroud)

php parsing command-line-arguments

16
推荐指数
6
解决办法
3875
查看次数

标签 统计

php ×2

command-line-arguments ×1

parsing ×1

preg-split ×1

regex ×1