首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strsplit中的正则表达式“\\|”

strsplit中的正则表达式“\\|”
EN

Stack Overflow用户
提问于 2012-08-04 15:25:27
回答 3查看 5.9K关注 0票数 4
代码语言:javascript
复制
>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,"\\|")可以工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-04 15:30:31

因为它是带引号的字符串。在带引号的字符串中,可以通过使用\"字符进行转义来包括该字符。然后,\本身也需要转义为单个文字反斜杠。因此,您引用的字符串表示:\|

现在,在正则表达式中,|是一个特殊字符,除非对其进行转义,否则不会进行字面上的匹配。R中的正则表达式也使用反斜杠进行转义,因此字符串文字"\\|"表示字符串\|,它是一个与|完全匹配的表达式。"\\|"之所以有效,是因为这意味着要精确匹配|,它显示为要拆分的字符串中的分隔符。

一个更具体的reference to regular expressions in R可能很方便,但它和许多as一样,引用了perl regular expressions

票数 7
EN

Stack Overflow用户

发布于 2012-08-04 15:28:35

因为

代码语言:javascript
复制
|

在reg-exps中有特殊含义,需要对其进行转义,因此为了与| 匹配,实际的正则表达式

代码语言:javascript
复制
\|

由于\在声明字符串文字时是一个特殊字符(您可能从\n等文件中识别出它),因此\本身需要进行转义。也就是说,为了创建包含\|的字符串文字,您需要

代码语言:javascript
复制
\\|
票数 15
EN

Stack Overflow用户

发布于 2012-08-04 15:29:07

从我对正则表达式所知的微不足道,我认为"|“本身可以工作(反斜杠转义管道。来源:Regular Expressions Reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11806768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档