如何编写Python re.search正则:匹配含prod但排除含orange的字符串
正则表达式实现:包含prod但排除含orange的字符串
可以使用负向前瞻断言结合匹配逻辑实现需求,对应的正则表达式如下:
^(?!.*orange).*prod.*
正则逻辑说明:
^(?!.*orange):负向前瞻断言,从字符串起始位置开始检查,确保整个字符串中不存在orange子串(.*匹配任意字符,保证orange出现在任意位置都会被检测到).*prod.*:匹配任意位置包含prod的字符串,.*覆盖前后任意字符,确保prod可以出现在字符串的任何位置
示例验证:
web-prod-green:无orange且包含prod → 匹配成功web-prod-orange:包含orange → 断言不通过,匹配失败web-orange-green:无prod → 匹配失败orange-prod-green:包含orange → 断言不通过,匹配失败
Python中re.search的使用示例:
import re match_pattern = r'^(?!.*orange).*prod.*' test_strings = [ "web-prod-green", "web-prod-orange", "web-orange-green", "orange-prod-green" ] for s in test_strings: result = re.search(match_pattern, s) status = "匹配成功" if result else "匹配失败" print(f"'{s}' → {status}")
内容的提问来源于stack exchange,提问作者sebastianwth
相关产品推荐
相关产品推荐

