Javascript 匹配不包含片段的字符串-使用regexp

Javascript 匹配不包含片段的字符串-使用regexp,javascript,regex,Javascript,Regex,我有一个文件(基本上是一个日志文件)-其中包含以下行: Error; 1 no match CIRCLE more. Info; 2 should not match Error; 3 should : match SHAPE 'abc'. Debug; 4 should not match Error; 5 CIRCLE / again Error; 6 TRIANGLE should match 我想查找/匹配以“Error;”开头的所有完整行但在那一行中不要有“圆圈”一词。所以我想找到第

我有一个文件(基本上是一个日志文件)-其中包含以下行:

Error; 1 no match CIRCLE more.
Info; 2 should not match
Error; 3 should : match SHAPE 'abc'.
Debug; 4 should not match
Error; 5 CIRCLE / again
Error; 6 TRIANGLE should match
我想查找/匹配以“Error;”开头的所有完整行但在那一行中不要有“圆圈”一词。所以我想找到第3行和第6行:

Error; 3 should : match SHAPE 'abc'.
Error; 6 TRIANGLE should match
我以
(Error;)开头的模式+
给出了所有的“Error”行,但我不确定如何排除圆形行。应该是一些非常基本的使用
[^…]
或前瞻性的东西

在这里,我在网上玩它:

试试这个。别忘了设置
i
m
g
标志。请参阅演示

试试这个。别忘了设置
i
m
g
标志。请参阅演示


使用下面使用的正则表达式。如果正则表达式包含锚(
^
-表示行的开始,
$
-表示行的结束),请不要忘记添加多行修饰符


使用下面使用的正则表达式。如果正则表达式包含锚(
^
-表示行的开始,
$
-表示行的结束),请不要忘记添加多行修饰符

^Error(?!.*?circle).*$
^Error;(?!.*?CIRCLE).*$
> var r = "Error; 1 no match CIRCLE more.\nInfo; 2 should not match\nError; 3 should : match SHAPE 'abc'.\nDebug; 4 should not match\nError; 5 CIRCLE / again\nError; 6 TRIANGLE should match";
undefined
> var m = r.match(/^Error;(?!.*?CIRCLE).*$/gm)
undefined
> console.log(m)
[ 'Error; 3 should : match SHAPE \'abc\'.',
  'Error; 6 TRIANGLE should match' ]