首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略文件扩展名的正则表达式

忽略文件扩展名的正则表达式
EN

Stack Overflow用户
提问于 2016-04-18 14:33:48
回答 3查看 165关注 0票数 2

我需要一些关于正则表达式的帮助。我有以下4个文件名

20160406.214053.18914.0013.phd heapdump.20160406.214053.18914.0013.phd.gz javacore.20160406.214053.18914.0002.txt javacore.20160406.214053.18914.0002.txt.gz

基本上,我需要的是我的正则表达式忽略其末尾带有.gz的文件。我试过以下几种方法,但似乎行不通。

代码语言:javascript
复制
/heapdump.*.phd|javacore.*.txt/i
/heapdump*.phd|javacore*.txt/i
/heapdump.\d+.\d+.\d+.\d+.phd|javacore.\d+.\d+.\d+.\d+.txt/i

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-18 14:41:42

这取决于你对解决方案的要求有多高。如果您只有phdtxt扩展,这将有效。

代码语言:javascript
复制
/heapdump.*\.(phd|txt)$/

这意味着:以堆转储开头的字符串,然后是点,然后是phd或txt,行尾。

或者,您可以简单地否定以点gz结尾的字符串。

代码语言:javascript
复制
/.*\.gz$/
票数 0
EN

Stack Overflow用户

发布于 2016-04-18 14:41:55

这会起作用的

代码语言:javascript
复制
(?!.*\.gz$)(^.*$)

Regex Demo

JS码

代码语言:javascript
复制
var re = /(?!.*\.gz$)(^.*$)/gm; 
var str = 'heapdump.20160406.214053.18914.0013.phd\nheapdump.20160406.214053.18914.0013.phd.gz\njavacore.20160406.214053.18914.0002.txt\njavacore.20160406.214053.18914.0002.txt.gz';

var result = str.match(re);
document.writeln(result)

票数 3
EN

Stack Overflow用户

发布于 2016-04-18 14:42:23

一个不需要使用正则表达式的选项是将文件名在句点上(.)拆分为一个数组,然后检查数组的最后一个元素是否包含扩展gz

代码语言:javascript
复制
var filename = "heapdump.20160406.214053.18914.0013.phd.gz";
var parts = filename.split(".");

if (parts[parts.length - 1] == 'gz') {
    alert("ignore this file");
}
else {
    alert("pay attention to this file");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36696978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档