尝试使用正则表达式捕获特定模式(Python 3.4)

时间:2016-07-30 22:55:52

标签: python regex python-3.x

我想要捕捉的模式是:

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

模式的哪个部分我错了?

1 个答案:

答案 0 :(得分:4)

您对不同选项的模式匹配错误:'cp|sp|gp|pp'它正在尝试匹配文字字符'

你的正则表达式应该是这样的:

>>> re.match("Coin: (?:cp|sp|gp|pp) \(\d+\)", "Coin: gp (3840)")

表达式(?:cp|sp|gp|pp)会创建一个非捕获组。