You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改re.compile正则表达式以同时匹配P/N和PN格式的字符串?

解决同时匹配P/N和PN格式的正则表达式问题

没问题,咱们只需要调整正则表达式里的斜杠部分,让它变成可选的就能兼容两种格式了。

原来的正则里P\/N是固定匹配带斜杠的写法,我们把它改成P\/?N——这里的?表示前面的斜杠(\/)可以出现0次或者1次,这样不管是P/N还是PN都能被匹配到。

修改后的完整代码如下:

import re

# 调整后的正则表达式,兼容P/N和PN两种格式
USED_ON_PN_PATTERN = re.compile(r'\(USED ON +P\/?N {0,1}([^\)]+)')

# 测试带斜杠的情况
text1 = '(USED ON P/N D511835AAB503)'
match1 = USED_ON_PN_PATTERN.search(text1)
if match1:
    print(match1.group(1))  # 输出: D511835AAB503
else:
    print('else')

# 测试不带斜杠的情况
text2 = '(USED ON PN D511835AAB503)'
match2 = USED_ON_PN_PATTERN.search(text2)
if match2:
    print(match2.group(1))  # 输出: D511835AAB503
else:
    print('else')

关键修改点说明

  • 将原正则中的P\/N替换为P\/?N:\/?表示斜杠是可选匹配项,既可以匹配带斜杠的P/N,也能匹配不带斜杠的PN
  • 其余部分保持不变,依然能正确提取括号内P/N或PN后面的编号内容

这样两种格式的文本都能被正确匹配,并且match.group(1)都会返回你需要的编号D511835AAB503。

内容的提问来源于stack exchange,提问作者Vidya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:58:10