Regex 除撇号外,所有空格和标点符号均为strsplit

Regex 除撇号外,所有空格和标点符号均为strsplit,regex,r,Regex,R,我已经提出了相关的问题和建议。我试图概括这些答案,但失败了 基本上,我有一个字符串,我想分成单词、数字和任何标点符号,但我想保留撇号。以下是我尝试过的,我非常接近(我想): 虽然我想要一个基本的解决方案,但我希望看到其他的解决方案(我肯定有人有stringr解决方案),这使得这个问题更容易推广到其他人 注意:R有一个特定的正则表达式系统。您需要熟悉R才能回答此问题。您可以使用负前瞻(?!'): (好奇)R的正则表达式味道有什么特别之处?我很困惑你链接到的第一个问题怎么与这个问题不完全相同?@Jo

我已经提出了相关的问题和建议。我试图概括这些答案,但失败了

基本上,我有一个字符串,我想分成单词、数字和任何标点符号,但我想保留撇号。以下是我尝试过的,我非常接近(我想):

虽然我想要一个基本的解决方案,但我希望看到其他的解决方案(我肯定有人有stringr解决方案),这使得这个问题更容易推广到其他人


注意: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"    "."