我有以下正则表达式:
var regEx = /^\W*(.*?)\W*$/;
var regEx2 = /^\W*(.*)\W*$/;
Run Code Online (Sandbox Code Playgroud)
(.*?)意思?(.*?)和 和有什么区别(.*)?regEx.exec("abc ")返回?['abc ', 'abc']regEx2.exec("abc ")返回?['abc ', 'abc ']?在量词*、+、等之后添加{n,m}会产生不情愿/惰性匹配,而不是默认的贪婪匹配。从名字上就很直观了。贪婪意味着它将尝试匹配尽可能多的。惰性意味着它将尝试尽可能少地匹配。
没有非单词\W标记,因此\W*匹配空字符串。然后(.*?)将尽可能少地匹配,但检查是否\W*可以匹配某些内容。因此(.*?)将匹配并捕获 "abc",并且\W*(非单词)将匹配空格。
与上面几乎相同,但(.*)会尽可能多地吃掉并匹配并捕获 "abc ",并\W*留下它匹配的空字符串。
对于 2 和 3,返回数组中的第二个元素是正则表达式中第一个捕获组捕获的文本。数组中的第一个元素是与整个正则表达式匹配的文本。
| 归档时间: |
|
| 查看次数: |
2285 次 |
| 最近记录: |