我之前曾问过类似的问题,但这个问题更具体,需要与之前提供的解决方案不同的解决方案,所以我希望发布它是可以的.我需要在我的文本中仅保留撇号和字内短划线(删除所有其他标点符号).例如,我想从str1获取str2:
str1<-"I'm dash before word -word, dash &%$,. in-between word, two before word --word just dashes ------, between words word - word"
str2<-"I'm dash before word word dash in-between word two before word word just dashes between words word word"
Run Code Online (Sandbox Code Playgroud)
我到目前为止的解决方案,首先删除单词之间的破折号:
gsub(" - ", " ", str1)
然后留下字母和数字字符加上剩余的破折号
gsub("[^[:alnum:]['-]", " ", str1)
问题是,它不会删除相互之间的破折号,例如" - "和单词开头和结尾的破折号:" - word"或"word-"
我认为这样做:
gsub('( |^)-+|-+( |$)', '\\1', gsub("[^ [:alnum:]'-]", '', str1))
#[1] "I'm dash before word word dash in-between word two before word word just dashes between words word word"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |