[英]Trying to get a substring using regex in Python / pandas
我知道這可能看起來很愚蠢,但我一直在到處尋找並嘗試使用正則表達式並徒勞地拆分。 我的腳本從不適用於我的數據集上的所有類型的字符串。
我有一列包含看起來像(三種情況)的原始數據:
20181223-FB-BOOST-AAAA-CC Auchy-Les-Mines - Père Noel
20161224-FB-BOOST-SSSS-CC LeMarine - XXX XXX
20161223-FB-BOOST-XXXX-CC Bonjour le monde - Blah blah
所以我想要做的是將字符串放在 CC 之后和“-”之前的中間。 我寫了一個腳本,它確實適用於第二種情況,但從來沒有適用於其他兩種情況:
1st case: Auchy-Les-Mines
2nd case: LeMarine
3rd case: Bonjour le monde
這是我使用的正則表達式,但從未適用於所有情況:regex = r"\\s\\b.*-."
提前致謝 !
你我用
df['Col'].str.extract(r'-CC\s+(.*?)\s+-')
請參閱正則表達式演示。
圖案詳情
-CC
- 文字子串\\s+
- 1+ 個空格(.*?)
- 第 1 組(該值將由.str.extract
返回):除換行符以外的任何 0+ 個字符,盡可能少\\s+
- 1+ 個空格( +
在這里很重要)-
- 一個連字符在(.*?)
兩端都有\\s+
模式的事實將確保結果已經從空格中去除,無論有多少空格。
您可以使用以下方法進行相當簡單的操作:
result = df.raw_data.str.extract(r'-CC (.*) -')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.