1

考虑以下命令行: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)?

在此处输入图像描述

4

5 回答 5

3

使用字符类,例如/-fn [a-z0-9.]+ -tc/i. 在英语中,这意味着“ -fn,后跟一个或多个字符 between a-z、 between0-9或 a .,后跟-tc。” 如果要捕获该部分,请将该部分括在括号中。

于 2013-06-12T01:29:21.657 回答
3

形容它!

For: P23.24.23.4.w07
use: \w+(?:\.\w+)+

请注意,对于您的 java 版本,您可以使用所有格量词原子组

\\w++(?>\\.\\w++)+
于 2013-06-12T01:24:57.663 回答
1

我用过这个 -\w+|\w+\s|\S+.+\w+\s

我们可以使用“not space”代替“word”,您没有指定额外的要求,所以我认为这很好。

正则表达式测试

于 2013-06-12T01:36:29.623 回答
0

使用量词:

-\w+|\w+\s|(?:\w+\.+)+\w+\s
           ^^^      ^^

你也可以简单地表达你的意思:

-?\w+\s?|(?:\w+\.+)+\w+\s
于 2013-06-12T01:25:50.933 回答
0

为了在 java 中执行此操作,您需要做的就是将其沿空格拆分,不需要正则表达式。好的oleString.split()应该能够处理它。

于 2013-06-12T01:32:32.857 回答