Regex Perl正则表达式提取子字符串,因为存在其他子字符串
我需要提取一个子字符串,因为存在另一个子字符串。在下面的示例中,单词ERROR:表示值12345678。我需要12345678的值。在第二个示例中,错误:不存在。因此,我不需要结果。就我所知:Regex Perl正则表达式提取子字符串,因为存在其他子字符串,regex,perl,substring,conditional,Regex,Perl,Substring,Conditional,我需要提取一个子字符串,因为存在另一个子字符串。在下面的示例中,单词ERROR:表示值12345678。我需要12345678的值。在第二个示例中,错误:不存在。因此,我不需要结果。就我所知: ERROR:.*(\d) 20170808错误:已达到TXN 12345678请求限制 20170808警告:TXN 22345678等待到期 如果你是正则表达式大师,那么你知道上面的匹配 错误:TXN 12345678 组中只有数字8。我需要整数。谢谢你的帮助 您可以使用 ERROR:.*?(\d+)
ERROR:.*(\d)
20170808错误:已达到TXN 12345678请求限制
20170808警告:TXN 22345678等待到期
如果你是正则表达式大师,那么你知道上面的匹配
错误:TXN 12345678
组中只有数字8。我需要整数。谢谢你的帮助 您可以使用
ERROR:.*?(\d+)
看。在这里,*?
将尽可能少地匹配除换行符以外的任何0+字符(因为*?
是惰性量词),并且(\d+
将捕获到组1中的一个或多个数字
或者,或者
ERROR:.*\D(\d+)
看。在这里,*\D
将尽可能多地匹配除换行符以外的任何0+字符(因为*
是贪婪的量词),直到并包括最后一个非数字字符(使用\D
),然后(\D+)
将捕获到组1中的一个或多个数字
选择最适合您的场景的模式(如果数字是错误:
之后的第一组数字,则第一个模式最佳;如果数字组是行中的最后一组数字,则第二个模式最佳)