Python中的正则表达式,23个数字,然后是2个字母

2024-06-16 16:31:56 发布

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

我正在尝试在一系列衣服中自动检测胸罩的尺寸。虽然我只提取了胸罩项目,但我现在正在提取尺寸信息,我想我差不多做到了(多亏了stackoverflow社区)。然而,我在另一篇文章中找不到一个特殊的案例

我正在使用: 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”

谢谢


Tags: 项目信息尺寸字母stackoverflow空白秘密aa
1条回答
网友
1楼 · 发布于 2024-06-16 16:31:56

你可以用

 \d{2,3} ?([a-fA-F])\1?(?![a-fA-F])

解释

  • \d{2,3} ?匹配空格、2-3位数字和可选空格
  • ([a-fA-F])\1?在组1中捕获a-fA-F,然后可选地返回到组1
  • (?![a-fA-F])负前瞻,断言右边的不是a-fA-F

Regex demo

相关问题 更多 >