如何用正则表达式提取字符串最后斜杠后前两个连字符分隔词
解决方案
方法一:正则表达式精准提取
你可以用更针对性的正则表达式,直接锁定最后一个/之后的前两个以-分隔的片段:
import re s = "p/daphne-logo-espadrille/2208098001-BLACK-38-se.html" pattern = r".*/([^-]+-[^-]+)" match = re.search(pattern, s) if match: print(match.group(1)) # 输出: 2208098001-BLACK
正则逻辑说明:
.*\/:通过贪婪匹配定位到字符串中最后一个/,并匹配其之前的所有内容([^-]+-[^-]+):捕获由-连接的两段内容,[^-]+表示匹配任意非-的字符序列,刚好对应你需要的前两个词。
如果需要更严谨的匹配(确保两段都是字母数字),可以调整正则为:
pattern = r".*/(\w+)-(\w+)" match = re.search(pattern, s) if match: print(f"{match.group(1)}-{match.group(2)}") # 输出同样结果
方法二:字符串分割(直观易维护)
如果不想依赖正则,Python原生的字符串操作也能轻松实现需求:
s = "p/daphne-logo-espadrille/2208098001-BLACK-38-se.html" # 步骤:按/分割取最后一段 → 按-分割取前两个元素 → 用-重新连接 result = "-".join(s.split("/")[-1].split("-")[:2]) print(result) # 输出: 2208098001-BLACK
这种方法逻辑清晰,无需理解正则语法,适合简单场景下的快速实现。
内容的提问来源于stack exchange,提问作者bugfixer_vicky
相关产品推荐
相关产品推荐

