Python如何提取指定文本间的子字符串(以setNumber后数字为例)
原正则匹配失败的原因
你使用的正则setNumber,: (\w+)和原文本结构不匹配:原字符串中setNumber后跟随的是, (逗号加空格),没有冒号,正则里多写的冒号导致完全匹配不到对应位置,自然无法提取目标结果。
正确提取方法
以Python为例,调整正则后用re.search取捕获组即可:
import re raw_str = "The setNumber, 1112223332 was not found" match_res = re.search(r"setNumber, (\d+)", raw_str) if match_res: target_num = match_res.group(1) # 此处target_num的值就是1112223332
- 正则里用
\d+匹配连续数字,比\w+精准度更高,不会误匹配到字母、下划线等其他字符 - 如果目标内容不一定是纯数字,可以把
\d+换回\w+,正则调整为r"setNumber, (\w+)"即可 - 其他编程语言只要使用修正后的正则,调用对应语言的正则捕获组方法,都可以拿到目标结果。
内容的提问来源于stack exchange,提问作者user1591156
相关产品推荐
相关产品推荐

