我有一个包含表达式的大文本:"aaaahahahahaha that was a good joke". 处理后,我希望它"aaaaahahahaha"消失,或者至少将其改为简单"ha".
目前,我正在使用这个:
gsub('(.+?)\\1', '', str)
Run Code Online (Sandbox Code Playgroud)
当带有模式的字符串位于句子的开头,而不是位于其他任何位置的位置时,此方法有效.所以:
str <- "aaaahahahahaha that was a good joke"
gsub('(.+?)\\1', '', str)
#[1] "ha that was a good joke"`
Run Code Online (Sandbox Code Playgroud)
但
str <- "that was aaaahahahahaha a good joke"
gsub('(.+?)\\1', '', str)
#[1] "that was aaaahahahahaha a good joke"
Run Code Online (Sandbox Code Playgroud)
这个问题可能与此有关:在python中找到重复的模式,但我找不到R中的等价.
我假设是非常简单的,也许我错过了一些微不足道的东西,但由于正则表达不是我的力量,我已经尝试了一些没有用的东西,我想知道是否有人可以帮助我.问题是:如何在R中的字符串中查找和替换重复的模式?
在此先感谢您的时间.
\b(\S+?)\1\S*\b
Run Code Online (Sandbox Code Playgroud)
使用此.参见演示.
https://regex101.com/r/sJ9gM7/46
对于r使用\\b(\\S+?)\\1\\S*\\b带perl=TRUE选项.
| 归档时间: |
|
| 查看次数: |
6264 次 |
| 最近记录: |