python - 使用正则表达式仅保留特殊字符串
问题描述
给定一个 python 字符串,我想只保留由这种模式组成的子字符串:任意两个字符 + 下划线 + 任意四个字符。例如,如果我有这个字符串AX_45TH (23) - JK_I KL_9056
,我只想返回AX_45TH
and KL_9056
。
其他几个输入和预期输出的例子:
输入:"12_MKTY (BLUE), RED YU_MKT6"
输出:["12_MKTY", "YU_MKT6"]
输入:"12_MKT (BLUE), RED YU_MKT6"
输出:["YU_MKT6"]
输入:"12_M (BLUE), RED YU_MKT6"
输出:["YU_MKT6"]
解决方案
>>> import re >>> >>> >>> pat = re.compile("[0-9A-Za-z]{2}_[0-9A-Za-z]{4}") >>> >>> for text in ["AX_45TH (23) - JK_I KL_9056", "12_MKTY (BLUE), RED YU_MKT6", "12_MKT (BLUE), RED YU_MKT6", "12_M (BLUE), RED YU_MKT6"]: ... print("{0:s}: {1:}".format(text, pat.findall(text))) ... AX_45TH (23) - JK_I KL_9056: ['AX_45TH', 'KL_9056'] 12_MKTY (BLUE), RED YU_MKT6: ['12_MKTY', 'YU_MKT6'] 12_MKT (BLUE), RED YU_MKT6: ['YU_MKT6'] 12_M (BLUE), RED YU_MKT6: ['YU_MKT6']
推荐阅读
- c - 为什么这会导致分段错误而不会?
- python - 如何将范围搜索条件添加到 API 调用?
- mysql - 选择包含相同值SQL的连续行的最新记录
- wix - Windows Installer / MSI 快捷方式组件是否应该绑定到注册表项/值?
- c# - 如何使用 C# 将变量设置为至少是最小值
- openedge - msgOpen:无法打开消息文件:PROMSGS
- ruby - 在没有 webhook 的情况下自动接受 Google 日历上的“新时间建议”?
- python - 线程与多处理器 Python
- vue.js - 表引导 vue
- java - WSO2 Identity Server 5.10.0 with Samples 4.2.0 继续有 java.lang.ClassCastException: class org.opensaml.saml1.core.impl.ActionBuilder