[英]Defining a JavaScript regular expression that matches anything except a particular string
[英]How to find string that matches the particular regular expression?
我在正则表达式/(a)\\18/
苦苦挣扎。 我试图找出与此正则表达式匹配的字符串将返回true ,但是我已经尝试过的所有可能性都将返回false。
/(a)\18/.test('a18'); //false
/(a)\18/.test('aa8'); //false
\\18
不能是八进制数,它可以引用第一个捕获组(a),后跟上述8 ,或者可以仅通过1后跟8进行转义,但是都返回false。 有人可以解释一下这个正则表达式的确切含义吗? 对我来说,不更改正则表达式至关重要。 它应该看起来像上面。 先感谢您
var a = /(a)\\18/.test('a18'); var b = /(a)\\18/.test('aa8'); console.log(a,b);
这个问题有两个答案:
\\ 1从字面上匹配具有索引18(110或116)的字符(区分大小写)
根据regex101.com:
第一个捕获组(a):a逐字匹配字符(区分大小写)
\\ 1从字面上匹配具有索引18(110或116)的字符(区分大小写)
8与字面上的字符8匹配(区分大小写)
代码: console.log(/(a)\\18/.test('a 8')); // returns true
console.log(/(a)\\18/.test('a 8')); // returns true
注意:这将返回false,因为StackOferflow将实际字符替换为``。 要重新创建此文件,请执行以下操作:
-或-\\ 1完全匹配\\ 1
您正在转义1,这并不是一个特殊字符。 因此,它仅与确切的文本匹配:
代码: console.log(/(a)\\18/.test('a\\18')); // returns true
console.log(/(a)\\18/.test('a\\18')); // returns true
另一个示例: console.log(/(a)\\18/.test('patata\\18')); // returns true
console.log(/(a)\\18/.test('patata\\18')); // returns true
在后一种情况下,“ patat”将被忽略,但与前面说明的模式匹配:a \\ 18
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.