繁体   English   中英

Perl Regex提取子字符串,因为存在其他子字符串

[英]Perl Regex extract substring because other substring exists

我需要提取子字符串,因为存在另一个子字符串。 在下面的示例中,单词ERROR:继续值12345678.我需要值12345678.在第二个示例中,ERROR:不存在。 因此我不需要任何结果。 这是我得到的:

ERROR:.*(\d)

20170808错误:TXN 12345678达到了请求限制。

20170808警告:TXN 22345678待定到期。

如果你是一个正则表达式大师那么你知道上面的匹配

错误:TXN 12345678

而这个组只是数字8.我需要整数。 谢谢你的帮助。

你可以用

ERROR:.*?(\d+)

请参阅正则表达式演示 在这里, .*? 将匹配除换行符之外的任何0+字符尽可能少(因为*?是一个惰性量词)和(\\d+)将捕获到组1中的一个或多个数字。

或者,或者

ERROR:.*\D(\d+)

另一个演示 在这里, .*\\D将尽可能地匹配除换行符之外的任何0+字符(因为*是一个贪婪的量词),包括最后一个非数字字符(用\\D )然后(\\d+)将一组或多组数字捕获到组1中。

选择最适合您的场景的模式(如果数字是ERROR:之后的第一组数字,则第一个最好:当数字组是一行中的最后一个数字时,第二个最好)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM