[英]regex ignore capturing group inside capturing group
我正在尝试捕获一个组,但同时忽略一个子组但需要该子组才能捕获它。 例如:
/^(?:\s*)([abc])?(?:\s*)((?:d){1}[ef]*)(.*)/.exec(' a deee ghi')
// is equal to [" a deee ghi", "a", "deee", " ghi"]
// but I really want equal to [" a deee ghi", "a", "eee", " ghi"]
// and I want this to fail:
/^(?:\s*)([abc])?(?:\s*)((?:d){1}[ef]*)(.*)/.exec(' a eee ghi')
// [" a eee ghi", "a", "", "eee ghi"]
我试图忽略捕获组中的'd'
,但只想在第三组'f'
的任何'e'
之前有'd'
时捕获它
我该怎么做?
编辑:
为了要求,我希望第三组只有在字符串中有'd'
才能填充。 否则 - >不要捕捉'e'
或'f'
如果我理解正确:如果d
在那里,那么捕获组应该是eee
,但如果d
不存在,那么捕获组应该为空或空。 那是对的吗? 如果是这样,你可以写:
/^(?:\s*)([abc])?(?:\s*)(?:d([ef]*)|[ef]*)(.*)/.exec(' a deee ghi')
匹配([ef]*)
当d
是存在,并且[ef]*
时,它不是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.