[英]python check if a string contains a 'word' with a certain format
我正在嘗試檢查字符串是否包含具有某種格式的單詞- 3numbers+ x+ 3numbers。 我正在使用 pandas dataframe ,數據如下所示:
| 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 video ad”中,我希望能夠打印出“ 320x240 ”。 我不熟悉正則表達式,甚至不知道這是否可以實現。 為了蠻力,我可以做一個 if-else 語句:
if "320x240" in somestring:
print "320x240"
elif "320x480" in somestring:
print "320x480"
...
但我不想強行使用它,我想找到另一種方法來使代碼更干凈。 有什么建議嗎?
對於 pandas:
df['banner size'] = df['ad name'].str.extract(r'(\d{3}x\d{3})')
如果一行中有多個橫幅尺寸,請改用str.findall
。
import re
if re.search(r'\d{3}x\d{3}', somestring):
output = re.findall(r'\d{3}x\d{3}', somestring)
print(', '.join(output))
else:
print('Nothing find')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.