我有一个正则表达式,用于捕获字符串的特定部分。
[Pp]rocess[\s]+(?<proc>[\w-]*|[\/\w-]*)\([\d]*\) killed by signal (?<signame>[\w\s]*)-(?<signum>[\d]+)
eg:Process tivosh(1426) killed by signal Hangup-1 输出: proc -> tivosh
->信号挂断
signum -> 1
在某些情况下,信号以“跟踪/断点陷阱”的形式出现。
eg: process uploader(2404) killed by signal Trace/breakpoint trap-5 请让我知道,如何捕捉一个word+non字字符?
发布于 2016-08-31 07:26:28
[\w\s]*只匹配零或多个字或空格字符。或者向类中添加更多允许的字符,或者使用延迟点模式- .*?。
[Pp]rocess\s+(?<proc>.*?)\(\d*\) killed by signal (?<signame>.*?)-(?<signum>\d+)
^^^ ^^^延迟点模式将匹配尽可能少的字符,而不是换行符,直到第一个-,后面跟着一个或更多位数(即-(?<signum>\d+)的第一次匹配)。与(?<proc>.*?)一样-它将匹配几乎没有任何字符,除了换行符,直到第一个(<digits_here_0_or_more>)。
此外,用字符类(括号)包装单个简写字符类没有意义:[\s]* = \s*。
发布于 2020-06-04 15:30:07
这是捕捉任何单词,空间,没有字符的方法。
[\w\s\W]https://stackoverflow.com/questions/39243184
复制相似问题