or{2} exactly 2
基本上,如果单词中包含正常字符或& 符号,并且后面有一个数字,那么它就不应该匹配。
不应匹配的单词的例子。&9Hello
&1Hey&2You
但如果它包含不同的符号,或不包含& 符号的数字,则应该匹配。
应该匹配的单词的例子。@3Hello
3Hello
_Hey5
&12Hello
&Hello
&1Hello@&£3
如果有人知道如何制作一个匹配词,或者解释一下如何使其发挥作用,将对我有很大帮助!
你写的问题不是很清楚。如果我理解正确的话,我举了一个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.*任意数量的任意字符。