忽略文件扩展名的正则表达式
Regular expressions ignoring a file extension
我需要一些正则表达式方面的帮助。我有以下4个文件名
堆料2016 0406.214053.18914.0013.phd堆料2016 0406.214053.18914.0013.phd.gzjavacore.20160406.214053.18914.0002.txtjavacore.20160406.214053.18914.0002.txt.gz
基本上,我需要的是让我的正则表达式忽略末尾带有.gz的文件。我尝试了以下操作,但似乎不起作用。
/heapdump.*.phd|javacore.*.txt/i
/heapdump*.phd|javacore*.txt/i
/heapdump.'d+.'d+.'d+.'d+.phd|javacore.'d+.'d+.'d+.'d+.txt/i
感谢
这将适用于
(?!.*'.gz$)(^.*$)
Regex演示
JS代码
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)
这取决于您希望解决方案精确到什么程度。如果您只有phd
和txt
扩展,这将适用于
/heapdump.*'.(phd|txt)$/
这意味着:一个以heapdump开头的字符串,后跟whatever,然后是一个点,然后是phd或txt,最后是行
或者,您可以简单地否定以句点gz结尾的字符串
/.*'.gz$/
一个不需要使用正则表达式的选项是将句点(.
)上的文件名拆分为一个数组,然后检查数组的最后一个元素是否包含扩展名gz
:
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");
}
相关文章:
- 是否可以扩展正则表达式元字符的范围
- 忽略文件扩展名的正则表达式
- 获取除带有正则表达式的指定类名之外的所有链接
- 正则表达式以匹配逗号分隔的主机名
- 文件扩展名正则表达式的节点参数
- 正则表达式检查正确的扩展名
- 除了 http://example.com 之外,如何扩展此正则表达式以匹配 www.example.com
- 主机名的正则表达式
- Javascript 正则表达式将文件名与扩展名匹配
- 正则表达式 JavaScript 图像文件扩展名
- Javascript 正则表达式类名问题
- Javascript正则表达式删除扩展名之后的所有内容
- 用于文件扩展名的正则表达式
- 如何在javascript中使用正则表达式验证文件扩展名
- 如何从单个正则表达式验证文件名和文件扩展名
- 不是图像扩展名的Javascript正则表达式url
- 正则表达式扩展到句子,在标点符号处停止
- 用于匹配/提取文件扩展名的Javascript正则表达式
- 用于带扩展名的手机号码验证的正则表达式模式
- 使用简单的正则表达式验证浏览器上传文件名和扩展名