python检查字符串是否包含特定格式的“单词”

我正在尝试检查字符串是否包含具有特定格式的单词 - 3numbers+ x+ 3numbers。我正在使用 Pandas 数据框,数据如下所示:

|            ad name             |
| puma sneaker ad banner 320x480 |
| puma mobile 320x240 video ad   |

320x480 和 320x240 表示广告横幅的大小,我想创建一个仅包含大小的新列

|            ad name             |  banner size  |
| puma sneaker ad banner 320x480 |   320x480     |
| puma mobile 320x240 video ad   |   320x240     |

例如,在句子“puma 运动鞋广告横幅320x480 ”中,我希望能够打印出“ 320x480 ”,在句子“puma mobile 320x240视频广告”中,我希望能够打印出“ 320x240 ”。我不熟悉 Regex,甚至不知道这是否可以实现。为了蛮力,我可以做一个 if-else 语句:

if "320x240" in somestring: 
    print "320x240"
elif "320x480" in somestring:
    print "320x480"
...

但我不想强制使用它,我想找到另一种方法来使代码更干净。有什么建议吗?

回答

对于熊猫:

df['banner size'] = df['ad name'].str.extract(r'(d{3}xd{3})')

如果您在一行中有多个横幅尺寸,请str.findall改用。


import re
if re.search(r'd{3}xd{3}', somestring):
    output = re.findall(r'd{3}xd{3}', somestring)
    print(', '.join(output))
else:
    print('Nothing find')


以上是python检查字符串是否包含特定格式的“单词”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>