Python中的正则表达式,2-3个数字,然后是2个字母
我正在尝试在一系列衣服中自动检测胸罩的尺寸。虽然我只提取了胸罩项目,但我现在正在提取尺寸信息,我想我差不多做到了(多亏了stackoverflow社区)。然而,我在另一篇文章中找不到一个特殊的案例 我正在使用:Python中的正则表达式,2-3个数字,然后是2个字母,python,regex,Python,Regex,我正在尝试在一系列衣服中自动检测胸罩的尺寸。虽然我只提取了胸罩项目,但我现在正在提取尺寸信息,我想我差不多做到了(多亏了stackoverflow社区)。然而,我在另一篇文章中找不到一个特殊的案例 我正在使用: regexp=re.compile(r'\d{2,3}?[a-fA-F]([^bce-zBCE-Z]|$) 所以 如果描述开头没有空白,则可能出现空白 两个或三个数字 是否有其他可能的空白 A和F之间的任何字母(小写或大写) 然后另一个字母表示两个特殊情况AA和FF或字符串的结尾 我的问
regexp=re.compile(r'\d{2,3}?[a-fA-F]([^bce-zBCE-Z]|$)
所以
如果描述开头没有空白,则可能出现空白
两个或三个数字
是否有其他可能的空白
A和F之间的任何字母(小写或大写)
然后另一个字母表示两个特殊情况AA和FF或字符串的结尾 我的问题是,有没有办法让第二个字母与第一个字母(AA或FF)匹配,因为在我的例子中,我的代码输出了一些不存在的BA和CA大小 示例:
不工作:
“bh sexig top matchande h&m genomskinligt parti svart detaljer 42 basic plain”返回“42 ba”,而不是未找到
“彪马,运动bh,strl:34cd,svart/grå”,我猜客户的意思是c/d 工作罚款:
“维多利亚秘密,bh,strl:32c,gul/vit”返回“32c”
“粉红维多利亚秘密bh 75dd勃艮第”返回“75dd” 谢谢 您可以使用
\d{2,3} ?([a-fA-F])\1?(?![a-fA-F])
解释
匹配空格、2-3位数字和可选空格\d{2,3}?
捕获组1中的a-fA-F,然后可选地返回到组1([a-fA-F])\1?
消极前瞻,断言右边的不是a-fA-F(?![a-fA-F])