【发布时间】:2013-12-24 08:21:50
【问题描述】:
我想验证一个字符串,然后从某些组中获取所有匹配项。
正则表达式:
/^<[A-Za-z0-9]>::=(<[A-Za-z0-9]>)+(\|(<[A-Za-z0-9]>)+)+$/
所以,如果我得到像 <A>::=<B><A>|<Y><A>|<Z> 这样的东西是有效的,但如果我得到像 <A>::=<B>| 这样的东西是假的。
验证没有问题,问题是我要取<和>里面的文字,因为以后需要。
所以,如果我得到<exparit>::=<number>|<number><exparit>,那么我想得到["exparit", "number", "number", "exparit"]
我的代码看起来像
Rules = {
"BNF" : /^<[A-Za-z0-9]>::=(<[A-Za-z0-9]>)+(\|(<[A-Za-z0-9]>)+)+$/
};
var checkBNF = function ( bnf ) {
if ( Rules.BNF.test( bnf ) ) {
console.log('ok');
//How to get the text inside < and > ??
}
else {
console.log('no');
}
};
我非常感谢任何形式的帮助,例如书籍、链接、示例或此问题的解决方案。
谢谢!
【问题讨论】:
标签: javascript regex match