R:分解字符串,但将引用的文本保留为单个单词
我遇到了这个问题: 类似的处理方法是使用正则表达式分解句子中的单词,用空格分隔,但保留引用的文本作为单个单词的完整性 我也希望在R中这样做。我尝试将正则表达式复制粘贴到stringi包中的stri_split以及base R中的strsplit中,但我怀疑正则表达式使用的格式R无法识别。错误是: 错误:'\S'是无法识别的字符串转义 所需的输出将是:R:分解字符串,但将引用的文本保留为单个单词,r,regex,stringi,R,Regex,Stringi,我遇到了这个问题: 类似的处理方法是使用正则表达式分解句子中的单词,用空格分隔,但保留引用的文本作为单个单词的完整性 我也希望在R中这样做。我尝试将正则表达式复制粘贴到stringi包中的stri_split以及base R中的strsplit中,但我怀疑正则表达式使用的格式R无法识别。错误是: 错误:'\S'是无法识别的字符串转义 所需的输出将是: mystr <- '"preceded by itself in quotation marks forms a complete sen
mystr <- '"preceded by itself in quotation marks forms a complete sentence" preceded by itself in quotation marks forms a complete sentence'
myfoo(mystr)
[1] "preceded by itself in quotation marks forms a complete sentence" "preceded" "by" "itself" "in" "quotation" "marks" "forms" "a" "complete" "sentence"
一个简单的选择是使用扫描:
一个简单的选择是使用扫描:
Try\\S对于RWE中正则表达式的任何反斜杠字符,您尝试的正则表达式是什么?为什么您的代码不在这个问题中??也适用于转义双精度quotes@ctwheels,您建议的正则表达式提供的错误与OP完全相同。也可以通过Tensibai关于反斜杠的评论来纠正。@r2evans。在任何情况下,我认为A5C1D2H2I1M1N2O1R2T1的答案都是非常准确的\\s对于RWE中正则表达式的任何反斜杠字符,您尝试过的正则表达式是什么?为什么您的代码不在这个问题中??也适用于转义双精度quotes@ctwheels,您建议的正则表达式提供的错误与OP完全相同。也可以通过Tensibai关于反斜杠的评论来纠正。@r2evans。无论如何,我认为A5C1D2H2I1M1N2O1R2T1的答案要好得多
Error in strsplit(mystr, "/\"(?:\\\\.|(?!\").)*%22|\\S+/") :
invalid regular expression '/"(?:\\.|(?!").)*%22|\S+/', reason 'Invalid regexp'
> x <- scan(what = "", text = mystr)
Read 11 items
> x
[1] "preceded by itself in quotation marks forms a complete sentence"
[2] "preceded"
[3] "by"
[4] "itself"
[5] "in"
[6] "quotation"
[7] "marks"
[8] "forms"
[9] "a"
[10] "complete"
[11] "sentence"