我想要捕捉的模式是:
Coin: gp (3840)
“gp”可以替换为“cp”,“sp”或“pp”,并且括号内可以有任何数字串。我想出的模式是:
"Coin: 'cp|sp|gp|pp' \(\d+\)"
但是,这是我尝试获得匹配时的结果:
>>> print(re.match("Coin: 'cp|sp|gp|pp' \(\d+\)", "Coin: gp (3840)"))
None
模式的哪个部分我错了?
答案 0 :(得分:4)
您对不同选项的模式匹配错误:'cp|sp|gp|pp'
它正在尝试匹配文字字符'
。
你的正则表达式应该是这样的:
>>> re.match("Coin: (?:cp|sp|gp|pp) \(\d+\)", "Coin: gp (3840)")
表达式(?:cp|sp|gp|pp)
会创建一个非捕获组。