说我有一个字符串,例如以下。
x <- 'The world is at end. What do you think? I am going crazy! These people are too calm.'
我只需要在标点符号
!?.
和以下空格上进行拆分,并保留标点符号即可。尽管这样可以删除标点符号,但在拆分部分中保留前导空格
vec <- strsplit(x, '[!?.][:space:]*')
我如何拆分句子并保留标点符号?
最佳答案
您可以使用PCRE
开启 perl=TRUE
并使用向后隐式断言。
strsplit(x, '(?<![^!?.])\\s+', perl=TRUE)
正则表达式:
(?<! look behind to see if there is not:
[^!?.] any character except: '!', '?', '.'
) end of look-behind
\s+ whitespace (\n, \r, \t, \f, and " ") (1 or more times)
Live Demo
关于regex - R字符串在拆分时删除标点符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19720144/