用于查找标志的正则表达式,无需关心java中的顺序[关闭]

问题描述 投票:0回答:1

我需要从用户那里获取这样的信息:

data -fn firstname -ln lastname -e email -ph phonenumber

我想处理所有标志的排列,这意味着用户可以以 4!(阶乘)状态提供信息。 其中一些:

data -ln lastname -e email -ph phonenumber -fn firstname
data -fn firstname -e email -ln lastname -ph phonenumber

我想知道最好的方法是什么。正则表达式是解决这个问题的最佳方法吗?

一些解决方案可以是:

  1. 为此制作 4!(24) 正则表达式!
  2. 制作一个硬正则表达式。我不知道该怎么做。希望有人知道。
  3. 实际上我不喜欢正则表达式,我寻找另一种解决方案,其算法并不比正则表达式差。
java regex string algorithm flags
1个回答
0
投票

我会质疑正则表达式在这里的用处。对我来说,您似乎正在尝试解析命令行选项。

为此,我会使用专用库,例如Apache 的 commons-cli。

或者编写您自己的解析器类,它逐字读取输入(逐个标记),跟踪最后遇到的键(例如“-fn”)并将以下值存储在 firstName 的变量中。等等。

正则表达式往往会很快变得非常复杂,基本上变得难以维护。

© www.soinside.com 2019 - 2024. All rights reserved.