gpt4 book ai didi

JavaScript 正则表达式 .*?

转载 作者:行者123 更新时间:2023-11-28 12:42:11 25 4
gpt4 key购买 nike

我有以下正则表达式:

var regEx = /^\W*(.*?)\W*$/;
var regEx2 = /^\W*(.*)\W*$/;
  1. (.*?) 的实际含义是什么? (.*?)(.*) 有什么区别?
  2. 为什么 regEx.exec("abc ") 在 Javascript 中返回 ['abc ', 'abc']
  3. 为什么 regEx2.exec("abc ") 在 Javascript 中返回 ['abc ', 'abc ']

最佳答案

  1. 在量词*+{n,m}等后面添加?。进行不情愿/惰性匹配,而不是默认的贪婪匹配。从名字上就很直观了。贪婪意味着它将尝试匹配尽可能多的。惰性意味着它将尝试尽可能少地匹配。

  2. 没有非单词 \W 标记,因此 \W* 匹配空字符串。然后 (.*?) 将匹配尽可能少的内容,但检查 \W* 是否可以匹配某些内容。因此 (.*?) 将匹配并捕获 "abc"\W* (非单词) 将匹配空格。

  3. 与上面几乎相同,但是(.*)会尽可能多地吃掉并匹配并捕获 "abc "\W* 将保留与其匹配的空字符串。

对于 2 和 3,返回数组中的第二个元素是正则表达式中第一个捕获组捕获的文本。数组中的第一个元素是与整个正则表达式匹配的文本。

关于JavaScript 正则表达式 .*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11407160/

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