为什么这个正则表达式在本文中找不到任何内容?

2024-06-14 20:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

title = 'Pokemon 1st Edition Alakazam 1/102 Base Set Mint Psa 9 Spanish no shadowless #1'

regex_set_search = 'psa\d?\d\d?'
set_number_match = re.search(regex_set_search, title, flags=re.IGNORECASE)
print(set_number_match)

您好,我正在尝试从标题变量中提取“psa 9”、“psa 10”、“psa 1”、“psa 7”。在这种情况下,我想返回“Psa 9”。出于某种原因,当我对文本示例运行上面的代码时,它只返回None。任何帮助都将不胜感激


Tags: renumbersearchbasetitlematchregexset
3条回答

使用

import re
title = 'Pokemon 1st Edition Alakazam 1/102 Base Set Mint Psa 9 Spanish no shadowless #1'
 
regex_set_search = r'\bpsa\s*\d+'
set_number_match = re.search(regex_set_search, title, flags=re.IGNORECASE)
print(set_number_match.group())

使用r'\bpsa\s*\d+',您可以匹配psa字,\s*匹配零个或多个空格,\d+匹配一个或多个数字

使用set_number_match.group(),可以得到匹配的值

Regex Demo

试试这个正则表达式:

re.findall(r'(?i)\bPSA\b\s\d+',title)

像这样:

import re

title = 'Pokemon 1st Edition Alakazam 1/102 Base Set Mint Psa 9 Spanish no shadowless #1' 
regex_set_search = '\bpsa \d+'
set_number_match = re.search(regex_set_search, title, flags=re.IGNORECASE)

print(set_number_match.group())

输出:

Psa 9

相关问题 更多 >