正则表达式中的非捕获组有什么问题?
What's wrong with the non capture group in my regular expression
我正在尝试编写一个正则表达式,将匹配类似于下面的字符串:
Yu MSBE26
w AWAQBNL
我正在使用Javascript,并提出了以下正则表达式:
(.*?(?:[AWMS'd]{2})[AWMS'd]{2}[A-Z]{2}['dA-Za-z]{1,3})
换句话说,我通过匹配所有内容来开始捕获组,直到遇到[AWMS'd]{2}
模式,然后匹配[AWMS'd]{2}
模式,随后匹配[A-Z]{2}
,最后匹配['dA-Za-z]{1,3}
以匹配最后的两个或三个字符。
从我所读到的,这应该是工作,但我没有得到任何匹配。
例如,当我使用正则表达式测试我没有得到任何匹配:样本
删除第二个[AWMS'd]{2}
-它看起来像一个意外的添加,是你的regex不工作的原因:
(.*?(?:[AWMS'd]{2})[A-Z]{2}['dA-Za-z]{1,3})
编辑:你甚至不需要非捕获组,方括号就足够了:
(.*?[AWMS'd]{2}[A-Z]{2}['dA-Za-z]{1,3})
你的正则表达式不匹配你的值,因为它们根本不匹配。
你的模式是:
(.*?(?:[AWMS'd]{2})[AWMS'd]{2}[A-Z]{2}['dA-Za-z]{1,3})
Yu MSBE26
^--- fails here
w AWAQBNL
^--- fails here
顺便说一句,你可以使用你的正则表达式来匹配你的字符串,像这样:
(.*?[AWMS'd]{2}[A-Z]{2}['dA-Za-z]{1,3})
演示工作相关文章:
- 我不知道我的编码有什么问题.(JavaScript)
- 我的流星路线出了什么问题
- 此nodeValue替换代码有什么问题
- 这个正则表达式的日期/时间有什么问题
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 这个代码出了什么问题?(Jquery)
- 下面的Reg表达式出了什么问题
- 鼠标事件,我的代码出了什么问题
- 这个javascript语法有什么问题
- 动态创建foreignGroup并将其添加到svg中有什么问题
- 此代码中动态生成选择框有什么问题
- 我的javascript有什么问题?.className
- 这个 ajax.js 代码有什么问题
- JS代码有什么问题,让我知道代码是否可以改进
- 我的 Browserify JavaScript 代码有什么问题
- 图像上传功能将++(+1)副本添加到下一次上传.出了什么问题或如何重置“选定图像”
- 使用 Javascript 动态删除行.我的代码有什么问题
- AngularJS:这个注入我的控制器有什么问题
- 这个jQuery if语句有什么问题
- JavaScript:有人能告诉我我的代码出了什么问题吗?