这是我的字符串'某事/其他事情'
我想与正则表达式匹配,直到/
,即空间正向斜线空间。这是我尝试的/.+?(?=\s//\s)/
,但它不起作用。它说:'模式不包含捕获组'。我正在使用它与熊猫提取功能。
答案 0 :(得分:3)
不确定我是否完全理解您的要求,但这应该可以解决问题:
(.*?)(?= \/ )
如果*
之前必须至少有一个字符,则可以将+
替换为/
。
您的代码存在的问题是pd.Series.str.extract
期望"正则表达式模式与捕获组。"你的正则表达式包括一个正向前瞻(?=
),但没有一个被捕获的组(括号之间的东西)。如果您在示例中用括号括起.+?
,它应该有效,但请注意\s
捕获任何空格,而不仅仅是空格。
答案 1 :(得分:2)
执行:
r'^([^/]+) / '
^([^/]+)
匹配/
的所有内容,然后/
匹配一个空格,然后匹配/
,然后再匹配一个空格。因此,捕获的组1将只有/
示例:强>
>>> import re
>>> s = 'something / something else'
>>> re.search(r'^([^/]+) / ', s).group(1)
'something'