Regex 错误:未指定重复运算符的目标

Regex 错误:未指定重复运算符的目标,regex,bash,expression,Regex,Bash,Expression,无法使用grep-E运行正则表达式。正则表达式可以与PERL和JavaScript一起工作,但需要在bash脚本中工作 尝试使用非捕获组以确保“+”运算符仅引用字符或字符类 (?:POWERPNT\.EXE\s+Error\s[0-9]+\s)([\s\S]+?)(?=[0-9]{4}\-[0-9]{2}\-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}Z$) 我需要bash脚本来返回匹配项。定义“返回匹配项”。(?:是一个perlism,并且在ERE语法中无效;请删

无法使用grep-E运行正则表达式。正则表达式可以与PERL和JavaScript一起工作,但需要在bash脚本中工作

尝试使用非捕获组以确保“+”运算符仅引用字符或字符类

(?:POWERPNT\.EXE\s+Error\s[0-9]+\s)([\s\S]+?)(?=[0-9]{4}\-[0-9]{2}\-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}Z$)

我需要bash脚本来返回匹配项。

定义“返回匹配项”。
(?:
是一个perlism,并且在ERE语法中无效;请删除它,或者使用
grep-p
(如果您的版本支持它)。请用一个演示来证明它在JS中是有效的。该模式看起来相当复杂。仔细看,我看到了更多的提示:在
[]
内部使用
\s
\s
(而不是将它们作为独立项使用),以及
+?
(?=
。基本上,您在这种情况下使用了错误的re语法变体。请定义“返回匹配项”。
(?:
是一种perlism,并且不是有效的ERE语法;请删除它,或者使用
grep-P
(如果您的版本支持它)。请用一个演示来证明它在JS中是有效的。该模式看起来相当复杂。仔细看,我看到了更多的错误:在
[]
内部使用
\s
\s
(而不是将它们作为独立项使用),以及
+?
(?=
。基本上,您在这种情况下使用了错误的re语法变体。