【发布时间】:2015-07-21 02:44:43
【问题描述】:
我在数据框中有一个字符串为:"(1)+(2)"
我想用分隔符“+”分割,这样我得到一个元素为(1),另一个为(2),因此保留括号。我使用了strsplit,但它没有保留括号。
【问题讨论】:
-
你确定吗?
strsplit("(1)+(2)",split="\\+")给了我"(1)"和"(2)"...
我在数据框中有一个字符串为:"(1)+(2)"
我想用分隔符“+”分割,这样我得到一个元素为(1),另一个为(2),因此保留括号。我使用了strsplit,但它没有保留括号。
【问题讨论】:
strsplit("(1)+(2)",split="\\+") 给了我"(1)" 和"(2)"...
使用
strsplit("(1)+(2)", "\\+")
或
strsplit("(1)+(2)", "+", fixed = TRUE)
使用strsplit("(1)+(2)", "+") 的想法不起作用,因为除非另有说明,否则split 参数是正则表达式,而+ 字符在正则表达式中是特殊的。其他也需要格外小心的角色是
?*.^$\|{}
[]
()
【讨论】:
\ 转义它们。如果匹配表达式像上面那样简单,您也可以在有疑问时使用fixed = TRUE,只要不使用任何正则表达式,而只是文字。
以下为我工作:
import re
re.split('\\+', 'ABC+CDE')
输出:
['ABC', 'CDE']
【讨论】: