我知道这可能看起来很愚蠢,但我一直在寻找各地并尝试使用正则表达式并且徒劳无功。我的脚本永远不适用于我的数据集上的所有类型的字符串。
我有这个包含原始数据的列(三种情况):
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 (.*) -')