如何用正则表达式高效匹配字符串中的前两个数字?
匹配字符串中前两个数字的高效正则表达式
针对包含大量数字的超长字符串,要高效匹配前两个数字,核心是让正则引擎找到第二个数字后立即停止扫描剩余内容,避免不必要的性能消耗。
推荐使用以下正则表达式:
(\d+).*?(\d+)
关键说明:
(\d+):匹配第一个连续数字序列,并用捕获组保存结果;若仅需匹配阿拉伯数字,可替换为([0-9]+).*?:采用非贪婪模式匹配任意字符(默认不包含换行,需匹配换行可添加s修饰符),确保找到第一个后续数字就停止扫描,不会遍历整个超长字符串- 第二个
(\d+):匹配并保存第二个连续数字序列
示例效果:
对字符串 words words words 9999 words words 1234 words 9934 4945...,捕获组1结果为9999,捕获组2结果为1234,正则引擎找到第二个数字后就停止处理后续内容,大幅提升效率。
内容的提问来源于stack exchange,提问作者Eshy
相关产品推荐
相关产品推荐

