我试图获取文件的名称,而没有最后一个下划线到结尾的部分。
例如,ABC_AA.xml
应该是ABC
和ABC_AASD_AD_AA.xml
应该是ABC_AASD_AD
我正在考虑将非贪婪与专有^
符号一起使用。
我已经试过了:
String nameToSearch = testName.replaceAll("_(^(_).)+\\.xml$", "");
最佳答案
如何使用简单的子字符串代替正则表达式
String nameToSearch = testName.substring(0, testName.lastIndexOf('_'));
或者如果没有
_
您可以使用String noSuffix = testName.substring(0, testName.lastIndexOf('.'));//remove ".xml"
String nameToSearch = noSuffix.substring(0, testName.lastIndexOf('_'));
但是,如果您真的想使用正则表达式,则可以尝试使用
testName.replaceAll("_[^_]*[.]xml$", "");
它将匹配(并删除)具有零个或多个非
_
字符_
并以[^_]*
结尾的.xml
。如果没有
_
,可以使用testName.replaceAll("(_[^_]*)?[.]xml$", "");