Java正则表达式检查是否匹配文件名中扩展名为.txt的前4个特定字符

Java正则表达式检查是否匹配文件名中扩展名为.txt的前4个特定字符,java,regex,regex-group,Java,Regex,Regex Group,需要对java进行一行正则表达式检查。我有一个正则表达式: (^DCLL).*\\.txt$ 这是行不通的。它应该与下面给出的文件名匹配 DCLL Stoneridge rock view_20171110132905.txt 需要检查前4个字符是DCLL,扩展名是.txt既然可以这么做,为什么还要使用regex s.startsWith("DCLL") && s.endsWith(".txt") ^(.{4})。*\.txt$?不太清楚你到底在找什么,但你的正则表达式是有

需要对java进行一行正则表达式检查。我有一个正则表达式:

(^DCLL).*\\.txt$ 
这是行不通的。它应该与下面给出的文件名匹配

DCLL Stoneridge rock view_20171110132905.txt


需要检查前4个字符是
DCLL
,扩展名是
.txt

既然可以这么做,为什么还要使用regex

s.startsWith("DCLL") && s.endsWith(".txt")

^(.{4})。*\.txt$
?不太清楚你到底在找什么,但你的正则表达式是有效的。也许你的代码(不是正则表达式)是问题所在。定义“不工作”。你是如何使用这个正则表达式的,你期望得到什么结果,你得到了什么结果?我不确定你是想在正则表达式中加一个双反斜杠,还是仅仅是一些剩余的转义,但是你应该用
\.
,或者用Java
\.
。我注意到在编辑您的问题后出现了双反斜杠。您可以将用于验证的代码添加到问题中吗?我使用它的方式是checkreg=(^DCLL)。*\\.txt$问题似乎不是表达式。。。可能他匹配的字符串与问题中的文件名不同。这是文件名:DCLL Stoneridge rock view_20171110132905.txtYeah,但是你是如何得到这个字符串的?我假设您使用了错误的方法获取名称(如
文件#getAbsolutePath
),或者您没有以正确的方式使用
模式
,那么您是否可以将代码添加到您的问题中?