正则表达式匹配除符号之外的所有字

时间:2017-10-05 07:55:55

标签: regex

我正在尝试解析单元测试异常消息,并将它们与st-out中的堆栈跟踪分开。输出的格式如下:

function validateDomain($domain)
{
  $point   = mb_strpos($domain,'.');
  $nameLen = mb_strlen(mb_substr($domain,0,$point));
  $extLen  = mb_strlen(mb_substr($domain,$point+1));
  if( ($nameLen >= 2) && ($nameLen <= 100) && 
      ($extLen >= 2) && ($extLen <= 24) ) return $domain;
  else return FALSE;      
}

重要的一点是:

  • 始终有 Message: Failed: expected invocation of Session.endDialog(It.isValue("login complete.")) exactly 1 times, invoked 0 times Configured setups: Session.endDialog(It.isValue("login complete.")) Performed invocations: Session.sendTyping() Session.endDialog("Login complete.") Stack: at Object.<anonymous> (<some path>\<some file>.spec.ts:274:19) at fulfilled (<some path>\<some file>.spec.js:4:57) at process._tickDomainCallback (internal/process/next_tick.js:228:7) 前面有2个空格,后跟换行符。
  • Message:后面的内容是1行或更多行,可能带有连续的换行符。
  • 始终有Message:前面有2个空格,后跟换行符。
  • Stack:后面是一行或多行堆栈跟踪类型文本。

解析器有点复杂,因为它基于行,但支持循环,需要不同的RegExp来捕获消息的各个重要部分。

我有一些工作表达式,除了一个。 基本上我需要一个RegEx来匹配Stack:行后的所有内容,直到Message:,一次一行。

例如,它必须匹配:

Stack:

    Failed: expected invocation of Session.endDialog(It.isValue("login complete.")) exactly 1 times, invoked 0 times`

     Configured setups:

等,但不是

     Session.endDialog(It.isValue("login complete."))

我尝试过使用负面预测而没有运气,这是我到目前为止所做的:

Stack:

1 个答案:

答案 0 :(得分:1)

我最终找到了所需的模式: ^(?! Stack:)(.*)$