Java replaceAll() 方法
Java replaceAll() method
我正在尝试理解这段代码:
for (File f : files) {
fileName = f.getName().toUpperCase().replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "");
if (fileName.equals(tableName + ".XML")) {
returnFile = f;
break;
}
}
我卡在了这一部分:replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "")
据我所知,它试图从名称中删除某些内容(可能是下划线“_”),但究竟是什么 _\d\d\d\d_\d\d_\d\d_\d\d_\d\d
有人可以解释一下吗?
as far as I know it is trying to remove something from the name (maybe the underscore "_" ) but what exactly is \d\d\d\d\d\d_\d\d_\d\d_\d\d
该模式将以这种格式 _XXXX_XX_XX_XX_
匹配数字 [0-9]
并将其替换为 ""
即什么都没有。
例如,
_7686_77_78_77_77
_0123_65_58_56_12
将在您的字符串中替换为 ""
。
\d - 匹配数字 [0-9]
str.replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "")
获取字符串 str
并将正则表达式 _\d\d\d\d_\d\d_\d\d_\d\d_\d\d
的所有匹配项替换为空(即 ""
)。 (它写成 \d
而不是 \d
的原因是 \
被转义了。)
在这种情况下,\d
表示 "a digit"。因此,更有可能的是,它从字符串中删除了 date/time。例如,如果 str
为 "screenshot_from_Whosebug_2016_03_30_23_47.jpg"
,则在 replaceAll
之后变为 screenshot_from_Whosebug.jpg
。
要了解正则表达式、它们的工作原理和功能,我建议您阅读它们,例如 regular-expressions.info. It has a pretty comprehensive tutorial available。
我正在尝试理解这段代码:
for (File f : files) {
fileName = f.getName().toUpperCase().replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "");
if (fileName.equals(tableName + ".XML")) {
returnFile = f;
break;
}
}
我卡在了这一部分:replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "")
据我所知,它试图从名称中删除某些内容(可能是下划线“_”),但究竟是什么 _\d\d\d\d_\d\d_\d\d_\d\d_\d\d
有人可以解释一下吗?
as far as I know it is trying to remove something from the name (maybe the underscore "_" ) but what exactly is \d\d\d\d\d\d_\d\d_\d\d_\d\d
该模式将以这种格式 _XXXX_XX_XX_XX_
匹配数字 [0-9]
并将其替换为 ""
即什么都没有。
例如,
_7686_77_78_77_77
_0123_65_58_56_12
将在您的字符串中替换为 ""
。
\d - 匹配数字 [0-9]
str.replaceAll("_\d\d\d\d_\d\d_\d\d_\d\d_\d\d", "")
获取字符串 str
并将正则表达式 _\d\d\d\d_\d\d_\d\d_\d\d_\d\d
的所有匹配项替换为空(即 ""
)。 (它写成 \d
而不是 \d
的原因是 \
被转义了。)
在这种情况下,\d
表示 "a digit"。因此,更有可能的是,它从字符串中删除了 date/time。例如,如果 str
为 "screenshot_from_Whosebug_2016_03_30_23_47.jpg"
,则在 replaceAll
之后变为 screenshot_from_Whosebug.jpg
。
要了解正则表达式、它们的工作原理和功能,我建议您阅读它们,例如 regular-expressions.info. It has a pretty comprehensive tutorial available。