正则表达式:匹配除一个单词之外的所有内容[重复]
Posted
技术标签:
【中文标题】正则表达式:匹配除一个单词之外的所有内容[重复]【英文标题】:Regex: Match everything but one word [duplicate] 【发布时间】:2014-12-30 01:24:06 【问题描述】:我正在寻找一种正则表达式模式,它可以匹配除一个精确单词之外的所有内容。
例如,分辨率:
monitors/resolutions // Should not match
monitors/34 // Should match
monitors/foobar // Should match
我知道您可以排除单个字符的列表,但是如何排除完整的单词?
【问题讨论】:
这是这里最常见的问题之一,提问前请先搜索。 【参考方案1】:使用否定的前瞻断言,
^(?!.*resolutions).*$
或
^(?!.*\bresolutions\b).*$
DEMO
【讨论】:
【参考方案2】:function test(str)
let match,
arr = [],
myRe = /monitors\/((?:(?!resolutions)[\s\S])+)/g;
while ((match = myRe.exec(str)) != null)
arr.push(match[1]);
return arr;
console.log(test('monitors/resolutions'));
console.log(test('monitors/34'));
console.log(test('monitors/foobar'));
function test(str)
let match,
arr = [],
myRe = /monitors\/(\b(?!resolutions\b).+)/g;
while ((match = myRe.exec(str)) != null)
arr.push(match[1]);
return arr;
console.log(test('monitors/resolutions'));
console.log(test('monitors/34'));
console.log(test('monitors/foobar'));
【讨论】:
以上是关于正则表达式:匹配除一个单词之外的所有内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章