如何利用正则表达式提取字符串中首次出现的连续三位数字?
提取字符串中首次出现的连续三位数字
问题描述
我有一个字符串列表,每个字符串开头包含若干字符与空格,之后会首次出现连续三位数字。需要从每个字符串中提取这组首次出现的三位数字。
示例
- 示例1:
输入字符串: "SEE 222 Newcastle NSW 203" 预期输出: 222 - 示例2:
输入字符串: "SEE TEMP 212 Newcastle NSW 203" 预期输出: 212 - 示例3:
输入字符串: "SEE TEMP212 Newcastle NSW 203" 预期输出: 212
解决方案
使用正则表达式匹配字符串中第一个连续三位数字即可,核心思路是用\d{3}匹配连续三个数字,再通过搜索方法获取第一个匹配结果。
Python 代码实现
import re def get_first_three_digits(input_str): # 搜索第一个连续三位数字的匹配项 match_result = re.search(r'\d{3}', input_str) # 有匹配则返回数字,否则返回None(可按需调整) return match_result.group() if match_result else None # 测试示例 test_cases = [ "SEE 222 Newcastle NSW 203", "SEE TEMP 212 Newcastle NSW 203", "SEE TEMP212 Newcastle NSW 203" ] for case in test_cases: print(get_first_three_digits(case))
代码说明
re.search(r'\d{3}', input_str):从字符串起始位置开始搜索,找到第一个符合连续三位数字规则的匹配项match_result.group():提取匹配到的数字字符串- 如果字符串中不存在连续三位数字,函数返回
None,可根据实际需求修改默认返回值
内容的提问来源于stack exchange,提问作者Ashwani Aggarwal
相关产品推荐
相关产品推荐

