考虑以下命令行:tfile -a -fn P2324_234.w07 -tc 8811
解析这个的正则表达式:(-\w+|\w+\s|\w+\.+\w+\s 见下面的截图)
问题是当文件名有多个点时,比如:tfile -a -fn P23.24.23.4.w07 -tc 8811
问题:如何确保将P23.24.23.4.w07解析为一个参数(如P23.24.23.4.w07)?

使用字符类,例如/-fn [a-z0-9.]+ -tc/i. 在英语中,这意味着“ -fn,后跟一个或多个字符 between a-z、 between0-9或 a .,后跟-tc。” 如果要捕获该部分,请将该部分括在括号中。
我用过这个 -\w+|\w+\s|\S+.+\w+\s
我们可以使用“not space”代替“word”,您没有指定额外的要求,所以我认为这很好。

使用量词:
-\w+|\w+\s|(?:\w+\.+)+\w+\s
^^^ ^^
你也可以简单地表达你的意思:
-?\w+\s?|(?:\w+\.+)+\w+\s
为了在 java 中执行此操作,您需要做的就是将其沿空格拆分,不需要正则表达式。好的oleString.split()应该能够处理它。