正则表达式在模式后提取文本
Regex to extract text after a pattern
我正在尝试从加载程序输出中提取错误消息,如下所示:
LOADER_ERROR : *** Failure The UserId, Password or Account is invalid., attempts:1
LOADER_ERROR : *** Time out waiting for a response.
预期输出:
Failure The UserId, Password or Account is invalid., attempts:1
Time out waiting for a response.
使用下面的正则表达式,我可以提取最后一次出现“:”字符后的所有内容。
.+(\:\s.+)$
输出:
: *** Failure The UserId, Password or Account is invalid., attempts:1
: *** Time out waiting for a response.
如何去除输出开头的“:”或“***”?
感谢您的帮助
您将 :
和 ***
包括在组中,因此它们将出现在输出中。
这应该有效:
.+\:\s\W+(.+)$
你要的数据好像在第一个冒号之后。您可以使用 negated character class [^
匹配第一个冒号之前的所有内容
请注意,您不必转义 \:
^[^:]+:\W*(.+)$
模式匹配:
^
字符串开头
[^:]+:
匹配除 :
之外的任何字符 1+ 次,然后匹配 :
\W*
可选择匹配非单词字符
(.+)
在第1组中捕获,匹配任意字符1+次
$
字符串结束
如果数据的格式总是这样,更严格的模式可以匹配 3 次星号,并以匹配单词字符开始捕获组。
^\w+\s+:\s+\*{3}\s+(\w.*)$
我正在尝试从加载程序输出中提取错误消息,如下所示:
LOADER_ERROR : *** Failure The UserId, Password or Account is invalid., attempts:1
LOADER_ERROR : *** Time out waiting for a response.
预期输出:
Failure The UserId, Password or Account is invalid., attempts:1
Time out waiting for a response.
使用下面的正则表达式,我可以提取最后一次出现“:”字符后的所有内容。
.+(\:\s.+)$
输出:
: *** Failure The UserId, Password or Account is invalid., attempts:1
: *** Time out waiting for a response.
如何去除输出开头的“:”或“***”?
感谢您的帮助
您将 :
和 ***
包括在组中,因此它们将出现在输出中。
这应该有效:
.+\:\s\W+(.+)$
你要的数据好像在第一个冒号之后。您可以使用 negated character class [^
请注意,您不必转义 \:
^[^:]+:\W*(.+)$
模式匹配:
^
字符串开头[^:]+:
匹配除:
之外的任何字符 1+ 次,然后匹配:
\W*
可选择匹配非单词字符(.+)
在第1组中捕获,匹配任意字符1+次$
字符串结束
如果数据的格式总是这样,更严格的模式可以匹配 3 次星号,并以匹配单词字符开始捕获组。
^\w+\s+:\s+\*{3}\s+(\w.*)$