如何用Python正则表达式提取点到冒号间的指定子串
Python正则提取目标子串方案
提取My substring2的正则
用非贪婪匹配结合分组,精准捕获目标内容:
- 正则表达式:
r'\.\s(.*?):' - Python代码示例:
import re target_str = 'My substring1. My substring2: My substring3: My substring4' result = re.search(r'\.\s(.*?):', target_str) if result: print(result.group(1)) # 输出: My substring2
原理:\.\s匹配. ,(.*?)是非贪婪分组,会匹配到第一个:就停止,刚好捕获My substring2。
提取. My substring2:的正则
如果接受包含前后缀的结果,只需把正则改成非贪婪模式:
- 正则表达式:
r'\.\s.*?:' - Python代码示例:
import re target_str = 'My substring1. My substring2: My substring3: My substring4' result = re.search(r'\.\s.*?:', target_str) if result: print(result.group()) # 输出: . My substring2:
原理:把原正则的.*(贪婪匹配所有内容到最后一个:)改成.*?(非贪婪匹配到第一个:),避免过度匹配。
内容的提问来源于stack exchange,提问作者Derk
相关产品推荐
相关产品推荐

