请考虑以下命令行: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
中所述)?
答案 0 :(得分:3)
描述它!
For: P23.24.23.4.w07
use: \w+(?:\.\w+)+
请注意,对于您的Java版本,您可以使用possessive quantifiers和atomic groups:
\\w++(?>\\.\\w++)+
答案 1 :(得分:3)
使用字符类,例如/-fn [a-z0-9.]+ -tc/i
。在英语中,这意味着“-fn
,后跟a-z
之间,0-9
或.
之间,后跟-tc
之间的一个或多个字符。”如果要捕获该部分,请将该部分包装在括号中。
答案 2 :(得分:1)
我用过这个 - \ W + |。\ W + \ S | \ S + + \ W + \ S
我们可能会使用'not space'来代替'word',你没有指定你的额外要求,所以我觉得它很好。
答案 3 :(得分:0)
使用量词:
-\w+|\w+\s|(?:\w+\.+)+\w+\s
^^^ ^^
你也可以简单地表达:
-?\w+\s?|(?:\w+\.+)+\w+\s
答案 4 :(得分:0)
为了在java中执行此操作,您需要做的就是沿着空格拆分它,不需要正则表达式。好的String.split()
应该能够处理它。