gpt4 book ai didi

javascript - 如何找到与特定正则表达式匹配的字符串?

转载 作者:行者123 更新时间:2023-12-03 04:49:14 24 4
gpt4 key购买 nike

我正在努力处理正则表达式/(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:

1st Capturing Group (a): a matches the character a literally (case sensitive)

\1 matches the character with index 18 (110 or 116) literally (case sensitive)

8 matches the character 8 literally (case sensitive)

代码:console.log(/(a)\18/.test('a�8'));//返回 true

注意:这将返回 false,因为 StackOferflow 将实际字符替换为 �。要重新创建这个,请执行以下操作:

  1. 访问 regex101.com,在 RegExp 栏上写入\18。
  2. 右侧解释了该模式。复制那里的字符:\1 与索引 18(110 或 116)字面意义(区分大小写)的字符 [这里有一个类似管道] 匹配。
  3. 将此代码中的该字符替换为 �。
  4. 运行命令并在控制台上得到 true :)

- 或 -\1 完全匹配\1

您正在转义 1,它实际上并不是一个特殊字符。因此,它只是匹配确切的文本:

  • a 并捕获它。
  • 正好\1
  • 正好 8

代码:console.log(/(a)\18/.test('a\18'));//返回 true

另一个例子:console.log(/(a)\18/.test('patata\18'));//返回 true

在后一种情况下,“patat”被忽略,但它与之前解释的模式匹配:a\18

关于javascript - 如何找到与特定正则表达式匹配的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com