簡體   English   中英

嘗試在 Python/pandas 中使用正則表達式獲取子字符串

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

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