在java正则表达式中,如何获取文件名的特定部分
我有一个字符串,它基本上是一个文件名。我需要找回一个 文件名的一部分。它是第二个-(破折号)之前的值。文件名的格式如下所示:
fileName-014qsqs-xxxxyyyzzz。txt
因此,我需要得到:
fileName-014QS
我如何使用正则表达式来实现它
谢谢
你可以在下面搜索框中键入要查询的问题!
我有一个字符串,它基本上是一个文件名。我需要找回一个 文件名的一部分。它是第二个-(破折号)之前的值。文件名的格式如下所示:
fileName-014qsqs-xxxxyyyzzz。txt
因此,我需要得到:
fileName-014QS
我如何使用正则表达式来实现它
谢谢
# 1 楼答案
可以使用以下正则表达式:
说明:除“-”之外的任何字符都表示为“[^-]”,因此
捕获由单个“-”分隔的非“-”字符序列,然后是第二个“-”字符,后面是任何其他文本
# 2 楼答案
嗨,我可能会做一段时间,当找到2“-”停止。Sry对此不予置评
# 3 楼答案
当试图弄明白这一点时,使用正则表达式测试器(例如http://www.regexplanet.com/advanced/java/index.html)可能会有所帮助
regex
(.*?-.*?)-.*
与您要查找的内容匹配.*
:任意字符任意次数?
:使它不贪婪,所以它只做尽可能少的匹配-
:文字破折号()
:括号使其成为一个组,以便可以提取整个程序如下所示:
并且有输出
fileName-014qsqs