如何使用Python正则表达式提取指定含斜杠的子字符串?
提取字符串中含"/"的目标子串实现方案
核心思路
利用正则表达式匹配符合特征的子串:目标子串由字母、数字、点、斜杠组成,且至少包含一个斜杠,被其他非相关字符(如空格、括号、句号)分隔。
Python 实现代码
import re stra = "hello (70/2009). Target no. 39/K/20/MEM/2019 world no. 12/2020 good 21/PMK.011/2010 test" # 匹配含至少一个"/"的目标子串 pattern = r'(?:[A-Za-z0-9.]+\/)+[A-Za-z0-9.]+' result = re.findall(pattern, stra) print(result)
代码解释
- 正则表达式
(?:[A-Za-z0-9.]+\/)+[A-Za-z0-9.]+:(?:...)是非捕获分组,用于逻辑分组但不额外存储匹配结果[A-Za-z0-9.]+匹配一段由字母、数字、点组成的连续字符\/匹配斜杠(转义是避免与正则表达式的分隔符冲突)+确保分组至少出现一次,保证子串包含至少一个斜杠- 末尾的
[A-Za-z0-9.]+匹配斜杠后的收尾字符段,完成完整子串的匹配
- 运行代码后,输出结果为:
['70/2009', '39/K/20/MEM/2019', '12/2020', '21/PMK.011/2010'],完全符合需求。
内容的提问来源于stack exchange,提问作者Tony Zeng
相关产品推荐
相关产品推荐

