【发布时间】:2019-07-06 03:08:18
【问题描述】:
我知道这可能看起来很愚蠢,但我一直在到处寻找并尝试使用正则表达式并徒劳无功。我的脚本永远不会适用于我在数据集上拥有的所有类型的字符串。
我的这一列包含看起来像(三种情况)的原始数据:
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.*-."
提前致谢!
【问题讨论】:
-
str.extract(r'-CC\s*(.*?)\s+-')?见regex101.com/r/2LagAy/1 -
@WiktorStribiżew 您不需要在开头输入空格,该正则表达式的更好方法是“-CC.*?\s-”
-
@PabloAlvarez 请参阅my answer,我在这里解释了它的原因
-
如果您的数据具有这种结构,您可以使用拆分方法并选择第二个索引。
标签: python regex pandas substring data-cleaning