首页 > 解决方案 > 子字符串而不是子字符串的正则表达式

问题描述

我需要一个 Javascript 中的 RegEx 模式,它将包括所有以 结尾.html并包含 string 的文件名rgo1

我还需要 Javascript 中的 RegEx 模式,它将排除所有以 结尾.html并包含 string 的文件名rgo1

这是用于 webpack.config 中的文件名匹配,这就是我想要该模式的原因。

感谢您提供“包含”模式,我找到了一个有效的模式,我现在将失败的尝试粘贴到我的“不包含模式”中:

[^rgo1].*\.html$/gm // nope
(?!^rgo1$).*\.html$ // nope
^((?!rgo1).)*$.*\.html$ // nope
^((?!rgo1).)*.\.html$ //works...paste this in your answer for the win

标签: javascriptregex

解决方案


使用正则表达式:/rgo1.*\.html$/

正则表达式解释:它将基本上匹配一个包含rgo1后跟任何内容并以 . 结尾的字符串.html

对于问题的另一部分,只需否定.test()

演示:

var filename1 = 'xyzrgo1abc.html';
var filename2 = 'rgo1abc.html';

var regex = new RegExp('rgo1.*\\.html$');

console.log('filename1 test:', regex.test(filename1));
console.log('filename2 test:', regex.test(filename1));
console.log('filename1 negation test:', !regex.test(filename1));

注意:对于非正则表达式解决方案,请参阅@revo 的回答


推荐阅读