Java正则表达式检查是否匹配文件名中扩展名为.txt的前4个特定字符
需要对java进行一行正则表达式检查。我有一个正则表达式: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$?不太清楚你到底在找什么,但你的正则表达式是有
(^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
),或者您没有以正确的方式使用模式
,那么您是否可以将代码添加到您的问题中?