Python中如何判断字符串是否存在ID后接3个任意字符加YYY的结构
解决方案
用Python内置的正则表达式模块re即可快速实现该需求,具体实现逻辑如下:
- 正则规则中
.可以匹配任意单个字符,{3}限定匹配次数恰好为3次,因此目标匹配规则可写为r'ID:.{3}YYY' - 调用
re.search()扫描整个输入字符串,只要存在符合规则的子串就会返回匹配对象,转为布尔值即可得到最终结果
完整示例代码
import re def match_id_pattern(s: str) -> bool: return bool(re.search(r'ID:.{3}YYY', s)) # 测试样例字符串 test_str = 'abcNumber:"1234"ID:XXXYYY END' print(match_id_pattern(test_str)) # 输出结果为 True
补充说明
如果允许ID:和YYY之间的3个字符包含换行符,可以给re.search添加re.DOTALL参数,修改为:
return bool(re.search(r'ID:.{3}YYY', s, flags=re.DOTALL))
如果不想使用正则实现,也可以通过遍历字符串查找ID:起始位置,再校验后续字符的方式实现,但代码复杂度会更高,更推荐正则方案。
内容的提问来源于stack exchange,提问作者ramseyka
相关产品推荐
相关产品推荐

