加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:42:46 所属栏目:Java 来源:网络整理
导读:我试图从最后一个下划线获取文件的名称,直到结束. 例如, ABC_AA.xml应该是ABC 和 ABC_AASD_AD_AA.xml应为ABC_AASD_AD 我正在考虑使用非贪婪的exlusive ^符号. 我试过这个: String nameToSearch = testName.replaceAll("_(^(_).)+.xml$",""); 解决方法 如
我试图从最后一个下划线获取文件的名称,直到结束.

例如,
ABC_AA.xml应该是ABC

ABC_AASD_AD_AA.xml应为ABC_AASD_AD

我正在考虑使用非贪婪的exlusive ^符号.
我试过这个:

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$","");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读