簡體   English   中英

python 檢查字符串是否包含具有特定格式的“單詞”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM