匹配任何不是a-z或A-Z或&后面是数字的东西。

问题描述 投票:0回答:1

or{2} exactly 2

基本上,如果单词中包含正常字符或& 符号,并且后面有一个数字,那么它就不应该匹配。

不应匹配的单词的例子。&9Hello &1Hey&2You

但如果它包含不同的符号,或不包含& 符号的数字,则应该匹配。

应该匹配的单词的例子。@3Hello 3Hello _Hey5 &12Hello &Hello &1Hello@&£3

如果有人知道如何制作一个匹配词,或者解释一下如何使其发挥作用,将对我有很大帮助!

regex
1个回答
1
投票

你写的问题不是很清楚。如果我理解正确的话,我举了一个JavaScript的例子。

EDIT:

下面解决了这个问题,假设'Hello'和'&1Hello@&£3'这两个词被例子错误地分配了,如问题的口头描述所示。

var r=/^((?![A-Za-z&][0-9])|([A-Za-z&][0-9]{2})).*$/;

// not match
console.log(r.test('&9Hello')); 
console.log(r.test('&1Hey&2You')); 

// match
console.log(r.test('@3Hello'));
console.log(r.test('3Hello'));
console.log(r.test('_Hey5'));
console.log(r.test('&12Hello')); 
console.log(r.test('&Hello'));

// Examples given incorrectly
console.log(r.test('&1Hello@&£3'));  // not match
console.log(r.test('Hello'));        // match

EDIT:答案涉及到你编辑帖子之前所举的例子。

var r=/^(?![A-Za-z&][0-9]).*$/;
console.log(r.test('3Hello'));
console.log(r.test('&&Hello'));
console.log(r.test('3&Hello'));
console.log(r.test('&3Hello'));

解释。

^$开始和结束regex()组元素吗!不包含[A-Za-z&]一个来自范围字符[0-9]一个来自digit.*任意数量的任意字符。
© www.soinside.com 2019 - 2024. All rights reserved.