惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

博客园 - 人工智能-群513704292

再出发 新的一年快开始了,学点新东西吧,从React开始(一) ECMAScript 6 Features 中文版 必须清零 彩印网的第一阶段即将收官 终于感觉掌握了一门重要的技术 程序员的命运之轮 2015年开局 2014年总结 终于理解了函数式技术 Swift来的正是时候 js的this和面向对象编程 js的this上下文的坑 JS正则表达式基本概念 前端样板资源概览及总评 C#的前世今生,学会C#还能找到高薪工作吗? CSS基本知识6-CSS字体 CSS基本知识5-CSS对齐 CSS基本知识4-CSS行模型
JS正则表达式进阶
人工智能-群513704292 · 2014-05-06 · via 博客园 - 人工智能-群513704292

贪婪量词   惰性量词    支配量词                      描述
-------------------------------------------------------------------------------------
  ?             ??             ?+                      可以出现0次或1次,但至多出现1次
  *             *?            *+                      可以出现任意次,也可以不出现
  +             +?            ++                      出现1次或多次,但至少出现1次
  {n}        {n}?           {n}+                   一定出现n次
  {n,m}    {n,m}?       {n,m}+               至少出现n次,但至多不能超过m次
  {n,}       {n,}?          {n,}+                 可以出现任意次,但至少出现n次 

JS不支持支配量词

分组:

在JavaScript和Java中,捕获性分组所匹配的内容都是以$1,$2,$3...的格式保存的!

如:

var now = "25/10/2009";
/(\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);
alert(RegExp.$3+"-"+RegExp.$2+"-"+RegExp.$1); //2009-10-25

1.子正则表达式 形式:/(子正则表达式)/

alert(/(\w)\w/.exec('helloword')); //he, h  第一个he是全匹配,第二个h是()里的子表达式匹配,所以()就是一个子表达式。也就是分组捕获内容。

分组捕获内容按左小括号计算,$1, $2...

分组捕获内容可以在外部使用,也可以在正则表达式内部使用(有点象程序变量,这时候叫反向引用)

外部使用:

var v = '1234 5678'.replace(/(\d{4}) (\d{4})/, "$2 $1");
alert(v); //5678 1234;

内部使用:

零宽断言
正则       名称       描述
(?=exp) 正向前瞻 匹配exp前面的位置
(?!exp) 负向前瞻 匹配后面不是exp的位置
(?<=exp) 正向后瞻 匹配exp后面的位置不支持
(?<!exp) 负向后瞻 匹配前面不是exp的位置不支持

正向前瞻用来检查接下来的出现的是不是某个特定的字符集。而负向前瞻则是检查接下来的不应该出现的特定字符串集。零宽断言是不会被捕获的。