相关疑难解决方法(0)

在C#中将包含命令行参数的字符串拆分为字符串[]

我有一个字符串,其中包含要传递给另一个可执行文件的命令行参数,我需要提取包含各个参数的字符串[],方法与在命令行中指定命令时C#相同.通过反射执行另一个程序集入口点时将使用字符串[].

这有标准功能吗?或者是否有正确分割参数的首选方法(正则表达式?)?它必须处理'''可能正确包含空格的分隔字符串,所以我不能只拆分''.

示例字符串:

string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo";
Run Code Online (Sandbox Code Playgroud)

示例结果:

string[] parameterArray = new string[] { 
  @"/src:C:\tmp\Some Folder\Sub Folder",
  @"/users:abcdefg@hijkl.com",
  @"tasks:SomeTask,Some Other Task",
  @"-someParam",
  @"foo"
};
Run Code Online (Sandbox Code Playgroud)

我不需要命令行解析库,只需要获取应生成的String [].

更新:我必须更改预期结果以匹配C#实际生成的内容(删除了拆分字符串中的额外")

c# command-line text-parsing

84
推荐指数
7
解决办法
8万
查看次数

在Java中拆分命令行

在Java中解析类似shell的命令行的推荐方法是什么.我并不是说当它们已经是数组形式时处理选项(例如处理"-x"等),已经有很多问题和答案.

不,我的意思是将完整的命令字符串拆分为"令牌".我需要转换一个字符串,如:

user 123712378 suspend "They are \"bad guys\"" Or\ are\ they?
Run Code Online (Sandbox Code Playgroud)

...到列表/数组:

user
123712378
suspend
They are "bad guys"
Or are they?
Run Code Online (Sandbox Code Playgroud)

我目前只是在空白上进行拆分,但显然无法处理引号和转义空格.

(引用处理是最重要的.逃脱的空间会很棒)

注意:我的命令字符串是来自类似shell的Web界面的输入.它不是建立在main(String[] args)

java parsing command-line-interface

7
推荐指数
1
解决办法
1365
查看次数

如何将字符串拆分为shell之类的参数?

是一个参数解析器列表,但它们接受字符串数组.

现在,我有一个字符串

-s -d "String with space" -d "string with \" escape \n the next line"
Run Code Online (Sandbox Code Playgroud)

我想将字符串拆分为

-s
-d
String with space
-d
string with " escape
the next line (This is one string with \n)
Run Code Online (Sandbox Code Playgroud)

有没有工具可以做到这一点?

也可以看看

EDTIED

张贴作为答案.

java regex string args4j

6
推荐指数
1
解决办法
1226
查看次数