使用RegEx在字符串中的特定文本后查找数字

Pat*_*ric 11 regex string powershell string-matching powershell-4.0

我有一个多行字符串,如下所示:

2012-15-08 07:04 Bla bla bla blup
2012-15-08 07:05 *** Error importing row no. 5: The import of this line failed because bla bla
2012-15-08 07:05 Another text that I don't want to search...
2012-15-08 07:06 Another text that I don't want to search...
2012-15-08 07:06 *** Error importing row no. 5: The import of this line failed because bla bla
2012-15-08 07:07 Import has finished bla bla
Run Code Online (Sandbox Code Playgroud)

我想要的是在RegularExpression(使用PowerShell)的帮助下提取所有有错误的行号.所以我需要找到"***Error import row no."和下面的":"之间的数字,因为这总是会给我行号.

我查看了其他各种RegEx问题,但说实话,答案对我来说就像中文.

试图在http://regexr.com/的帮助下构建RegEx 但到目前为止还没有成功,例如使用以下模式:

"Error importing row no. "(.?)":"
Run Code Online (Sandbox Code Playgroud)

任何提示?

Rub*_*ias 16

试试这个表达式:

"Error importing row no\. (\d+):"
Run Code Online (Sandbox Code Playgroud)

DEMO

在这里,您需要了解量词和转义序列:

  • .任何人物; 因为你只需要数字,请使用\d; 如果你的意思是句号字符,你必须用反斜杠(\.)来逃避它
  • ?零个或一个字符; 这不是你想要的,因为你可以在第10行看到一个错误,只需要"1"
  • +一个或多个; 这对我们来说就足够了
  • *任何字符数; 使用.*它时必须小心,因为它可以消耗你的整个输入