gpt4 book ai didi

java - 用于查找特定文件的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:27 25 4
gpt4 key购买 nike

我想将文件名匹配为 "abc (1).xyz""abc (2).xyz""abc (3).xyz" 等,其中 abcxyz (扩展名)是固定的。此外,空格+(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;
}

请提出任何解决方案。提前致谢。

最佳答案

您可以使用

String regex = "abc(?:\\s+\\([0-9]+\\))?\\.xyz";

它将匹配:

  • abc - abc
  • (?:\\s+\\([0-9]+\\))? - 可选序列:
    • \\s+ - 1 个以上空白字符
    • \\( - 一个 (
    • [0-9]+ - 1+ 位数字
    • \\) - 一个 )
  • \\.xyz - .xyz 子字符串。

由于您使用的是 Matcher#matches() 方法,因此需要整个字符串匹配(就好像整个模式包含在 ^$ anchor 中,"^abc(?:\\s+\\([0-9]+\\))?\\.xyz$")。

关于java - 用于查找特定文件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47650934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com