>str= "AAC|Australia Acquisition Corp. - Ordinary Shares|S|N|D|100"
> strsplit(str,"\\|")
[[1]]
[1] "AAC"
[2] "Australia Acquisition Corp. - Ordinary Shares"
[3] "S"
[4] "N"
[5] "D"
[6] "100" 我想知道\\|是否等同于|?
也许\\|等于\|,
为什么strsplit(str,"\\|")可以工作?
发布于 2012-08-04 15:30:31
因为它是带引号的字符串。在带引号的字符串中,可以通过使用\对"字符进行转义来包括该字符。然后,\本身也需要转义为单个文字反斜杠。因此,您引用的字符串表示:\|。
现在,在正则表达式中,|是一个特殊字符,除非对其进行转义,否则不会进行字面上的匹配。R中的正则表达式也使用反斜杠进行转义,因此字符串文字"\\|"表示字符串\|,它是一个与|完全匹配的表达式。"\\|"之所以有效,是因为这意味着要精确匹配|,它显示为要拆分的字符串中的分隔符。
一个更具体的reference to regular expressions in R可能很方便,但它和许多as一样,引用了perl regular expressions。
发布于 2012-08-04 15:28:35
因为
|在reg-exps中有特殊含义,需要对其进行转义,因此为了与| 匹配,实际的正则表达式为
\|由于\在声明字符串文字时是一个特殊字符(您可能从\n等文件中识别出它),因此\本身需要进行转义。也就是说,为了创建包含\|的字符串文字,您需要
\\|发布于 2012-08-04 15:29:07
从我对正则表达式所知的微不足道,我认为"|“本身可以工作(反斜杠转义管道。来源:Regular Expressions Reference
https://stackoverflow.com/questions/11806768
复制相似问题