[英]Javascript Regex Positive Lookahead
将a regex word
的开头和结尾定义为捕获组中的边界的正确语法是什么,如下所示:
var $classes = $( 'body' ).attr('class'); // string 'foo bar sub-theme-home';
var regex = /sub-theme-(?=(\b))/;
var sub_theme = regex.exec($classes);
console.log(sub_theme[0]);
这与sub-theme-
匹配,并且如果我需要在捕获中包括该子主题并进行字符串替换以将其删除就可以了,但我在为(?-(\\b))/
捕获找出正确的语法时遇到了麻烦组。 看起来像是积极向前, sub-theme-
应该被省略的部分, home
应该被捕获...帮助吗?
为什么不只捕获您要查找的字符串?
var $classes = $( 'body' ).attr('class'); // string 'foo bar sub-theme-home';
var regex = /sub-theme-(\w+)/;
var sub_theme = regex.exec($classes);
console.log(sub_theme[1]);
在MDN上了解有关带括号的子字符串和regex.exec(...)
结果的更多信息。
尝试这个:
var regex = /sub-theme-(\w+)/;
Javascript RegExp不支持某些高级的正则表达式功能,例如lookbehindes,名为捕获组的...。(这本书是针对Web开发人员的专业Javascript,第三版)p136:
模式限制
尽管ECMAScript的正则表达式支持已得到充分开发,但它确实缺少某些语言(如Perl)可用的高级正则表达式功能。 ECMAScript正则表达式不支持以下功能(有关更多信息,请参见www.regularexpressions.info):
尽管有这些限制,但ECMAScript的正则表达式支持功能强大,足以执行大多数模式匹配任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.