gpt4 book ai didi

java - 以下划线开头但不包含任何下划线的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:13 24 4
gpt4 key购买 nike

我正在尝试获取一个文件的名称,但不包含从最后一个下划线到结尾的部分。

例如,ABC_AA.xml 应该是 ABCABC_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$", "");

关于java - 以下划线开头但不包含任何下划线的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565139/

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