Regex 除撇号外,所有空格和标点符号均为strsplit
我已经提出了相关的问题和建议。我试图概括这些答案,但失败了 基本上,我有一个字符串,我想分成单词、数字和任何标点符号,但我想保留撇号。以下是我尝试过的,我非常接近(我想): 虽然我想要一个基本的解决方案,但我希望看到其他的解决方案(我肯定有人有stringr解决方案),这使得这个问题更容易推广到其他人Regex 除撇号外,所有空格和标点符号均为strsplit,regex,r,Regex,R,我已经提出了相关的问题和建议。我试图概括这些答案,但失败了 基本上,我有一个字符串,我想分成单词、数字和任何标点符号,但我想保留撇号。以下是我尝试过的,我非常接近(我想): 虽然我想要一个基本的解决方案,但我希望看到其他的解决方案(我肯定有人有stringr解决方案),这使得这个问题更容易推广到其他人 注意:R有一个特定的正则表达式系统。您需要熟悉R才能回答此问题。您可以使用负前瞻(?!'): (好奇)R的正则表达式味道有什么特别之处?我很困惑你链接到的第一个问题怎么与这个问题不完全相同?@Jo
注意:R有一个特定的正则表达式系统。您需要熟悉R才能回答此问题。您可以使用负前瞻
(?!')
:
(好奇)R的正则表达式味道有什么特别之处?我很困惑你链接到的第一个问题怎么与这个问题不完全相同?@Jongware,例如转义特殊字符有问题。@eddi第一个问题删除了字符,这里我没有删除它们,我想要它们。我用这两个问题中的信息尽可能地帮助我(相似但不完全相同)。@Tylerlinker你能举例说明吗?对于您当前的示例:
idential(strsplit(x),[[:space:]]|(?=[^'[:^punct:]]),perl=TRUE),strsplit(x,(\\s+)|(?!)(?=[:punct:]],perl=TRUE))#[1]TRUE
x <- "Raptors don't like robots! I'd pay $500.00 to rid them."
strsplit(x, "(\\s+)|(?=[[:punct:]])", perl = TRUE)
## [[1]]
## [1] "Raptors" "don" "'" "t" "like" "robots" "!"
## [8] "" "I" "'" "d" "pay" "$" "500" "." "00" "to"
## [20] "rid" "them" "."
## [[1]]
## [1] "Raptors" "don't" "like" "robots" "!" "" "I'd"
## [8] "pay" "$" "500" "." "00" "to" "rid" "them" "."
strsplit(x, "(\\s+)|(?!')(?=[[:punct:]])", perl = TRUE)
# [1] "Raptors" "don't" "like" "robots" "!" "" "I'd" "pay" "$" "500" "." "00" "to" "rid" "them" "."