繁体   English   中英

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

[英]Regular expression in Python, 2-3 numbers then 2 letters

我正在尝试在衣服列表中自动检测胸罩尺寸。 虽然我设法只提取了胸罩物品,但我现在正在考虑提取尺寸信息,我想我几乎就在那里(感谢 stackoverflow 社区)。 但是,有一个特殊情况我在另一篇文章中找不到。

我正在使用: regexp = re.compile(r' \d{2,3}?[a-fA-F]([^bce-zBCE-Z]|$)')
所以
如果不是在描述的开头可能的空白
两个或三个数字
是否存在另一个可能的空白
A 和 F 之间的任何字母(小写或大写)
然后是两个特殊情况 AA 和 FF 或字符串结尾的另一个字母。

我的问题是,有没有办法让第二个字母与第一个字母(AA 或 FF)匹配,因为在我的情况下,我的代码 output 我的一些 BA 和 CA 大小不存在

例子:
不工作:
“bh sexig top matchande h&m genomskinligt parti svart detaljer 42 basic plain”返回“42 ba”而不是未找到
“puma, sport-bh, strl: 34cd, svart/grå”,我猜客户的意思是 c/d

工作正常:
"victoria's secret, bh, strl: 32c, gul/vit" 返回 "32 c"
“pink victorias secret bh 75dd burgundy”返回“75 dd”

谢谢!

你可能会使用

 \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

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM