我希望将文件名匹配为"abc (1).xyz"
或"abc (2).xyz"
或"abc (3).xyz"
,依此类推,其中abc
和xyz
(扩展名)已修复。此外,空格+ (number)
部分是可选的,即abc.xyz
也是有效的。
我已尝试过以下代码,但它没有返回成功响应:
String regex = "abc\\s([0-9])\\.xyz";
Pattern mather = Pattern.compile(regex);
if (mather.matcher(fileName).matches()) {
return true;
} else {
return false;
}
请为此建议任何解决方案。提前谢谢。
答案 0 :(得分:0)
您可以使用
String regex = "abc(?:\\s+\\([0-9]+\\))?\\.xyz";
它将匹配:
abc
- abc
(?:\\s+\\([0-9]+\\))?
- 可选序列:
\\s+
- 1+空白字符\\(
- (
[0-9]+
- 1+位数\\)
- )
\\.xyz
- .xyz
子字符串。由于您使用的是Matcher#matches()
方法,因此需要进行整个字符串匹配(就好像整个模式附加了^
和$
个锚点"^abc(?:\\s+\\([0-9]+\\))?\\.xyz$"
)。< / p>