【发布时间】:2016-01-22 13:04:00
【问题描述】:
我有一个字符串
“ZTFN00识别号为89320394,手机号为+918017828848”
我想从关键字 ZTFN 中识别出第一次出现的数字(在本例中为 89320394)。此外,表达式不应返回带有 ZTFN 的 00,并且只返回第一次出现的数字。
我试过\d+(?!ZTFN00),但是不行!!
请推荐
【问题讨论】:
-
真正相关的标签是什么?试试
\b\d+\b(至少应该使用PCRE)。顺便说一句,正则表达式引擎只返回一个匹配,它取决于具体的语言来实现多个匹配。因此,如果您使用适当的方法,则只会返回第一个匹配项。 -
如果您的要求是匹配第一次出现的 89320394 的 8 位数字,请尝试
\d{8}关闭global否则 @WiktorStribiżew 建议的也是正确的。 -
要获取单词边界后的第一个数字,请尝试
^.*?\b\K\d+like this。 -
您是否在寻找
ZTFN00之后的第一个孤立数字字符串?print / (?: ZTFN00 ){1}+ .*? \b (\d+) \b /x。尽管可能会删除其中的大部分内容,但这取决于您的实时数据格式。您应该始终发布一些真实数据,以便我们在发布解决方案之前对其进行测试