我有一个字符串
“ZTFN00识别号为89320394,手机号为+918017828848”
我想从关键字 ZTFN 中识别第一次出现的数字(在本例中为 89320394)。此外,表达式不应返回带有 ZTFN 的 00,并且只返回第一次出现的数字。
我试过\d+(?!ZTFN00)
了,但它不起作用!
请建议
这应该这样做:
perl -ne '/ZTFN00\D+(\d+)/ && print $1,"\n"' yourfile
如果您的“数字”始终由空格分隔(ZTFN 后没有 00),那么您可以将其用作测试:
perl -ne 'print m/\b(\d+)\b/,"\n"' yourfile
多谢你们 !简单来说,我要找的是这个如果有一个字符串,它有一个关键字 ZTFN00,那么正则表达式应该能够在字符串的左侧或右侧返回最接近的 9 到 11 位数字。
我想在 oracle 的 REGEXP_REPLACE 函数中执行此操作。
下面是一些示例字符串
在上面,正则表达式应返回 867278489
在上面,正则表达式应返回 123456778
非常感谢您分享您的专业知识和指导
grep -Po 'ZTFN00.*?\K\b\d+\b'
ZTFN00
返回在该数字之前看到的行中单词边界之间的第一个数字。\K
是一个可变长度的后视:“匹配我左边的内容,但不要保留它”。