Python 仅在第一次出现分隔符时分割字符串

Python 仅在第一次出现分隔符时分割字符串,python,regex,string,Python,Regex,String,我使用的POS标记器处理以下字符串 3+2 3/num++/sign+2/num 如下图所示 3/num++/sign+2/num 我想使用python将此结果拆分如下 3/num++/sign+2/num ['3/num', '+/sign', '2/num'] 我该怎么做呢?我认为棘手的部分是双+符号。您可以使用特殊字符替换符号,并完成此操作 3/num++/sign+2/num 这应该行得通 3/num++/sign+2/num st = '3/num++/

我使用的POS标记器处理以下字符串

3+2
3/num++/sign+2/num
如下图所示

3/num++/sign+2/num
我想使用python将此结果拆分如下

3/num++/sign+2/num
['3/num', '+/sign', '2/num']         

我该怎么做呢?

我认为棘手的部分是双
+
符号。您可以使用特殊字符替换符号,并完成此操作

3/num++/sign+2/num
这应该行得通

3/num++/sign+2/num
st = '3/num++/sign+2/num'

st = st.replace('++', '@$')
st = st.replace('+', '@')
st = st.replace('$', '+')

print (st.split('@'))
这样做的一个问题是,原始字符串不能包含那些特殊字符
@
&
$
。因此,您需要根据您的用例仔细选择它们

3/num++/sign+2/num
编辑:这个答案很幼稚。有正则表达式的那个更好 也就是说,正如COLDSPEED所指出的,您应该使用以下带有lookback的正则表达式方法

3/num++/sign+2/num
import re
print re.split(r'(?<!\+)\+', '3/num++/sign+2/num')
重新导入
打印重新拆分(r’(?使用-

3/num++/sign+2/num

请注意,lookbehind(通常)不支持可变长度模式。

虽然要求使用正则表达式,但下面是一个如何使用标准
.split()执行此操作的示例:

3/num++/sign+2/num

您能给我们看一下您的代码吗?到目前为止您尝试了什么?哪里出了问题?…谢谢。这非常繁琐和迂回,更不用说使用任意选择的字符作为分隔符的危险了。@cᴏʟᴅsᴘᴇᴇᴅ 我同意。你的答案是better@PubuduDodangoda谢谢你的回复!似乎有些反对者想认为我反对你的解决方案。但他错了;)因为我们的协议;)如果答案有用,别忘了-点击复选标记(
),将其从灰显切换为填充。谢谢。@cᴏʟᴅsᴘᴇᴇᴅ 这是一个完美的答案。我还想使用re.split()解决这个问题,但我找不到一个方法。谢谢:)