gpt4 book ai didi

正则表达式帮助 : Identifying websites in text

转载 作者:行者123 更新时间:2023-12-01 06:54:43 25 4
gpt4 key购买 nike

我正在尝试编写一个从一段文本中删除网站的函数。我有:

removeWebsites<- function(text){
text = gsub("(http://|https://|www.)[[:alnum:]~!#$%&+-=?,:/;._]*",'',text)
return(text)
}

这处理了大量的问题,但不是一个流行的问题,即 xyz.com

形式的问题

我不想在上述正则表达式的末尾添加 .com,因为它限制了该正则表达式的范围。但是我试着写了一些更多的正则表达式,比如:

gsub("[[:alnum:]~!#$%&+-=?,:/;._]*.com",'',testset[10])

这行得通,但它还将 abc@xyz.com 格式的电子邮件 ID 修改为 abc@。我不想要这个,所以我修改为

gsub("*((^@)[[:alnum:]~!#$%&+-=?,:/;._]*).com",'\\1',testset[10])

这保留了电子邮件 ID,但停止识别 xyz.com

形式的网站

我知道我在这里需要某种集合差异,其形式与解释的内容相同 here但我无法实现它(主要是因为我无法完全理解它)。关于如何解决我的问题有什么想法吗?

编辑:我试过否定前瞻:

gsub("[[:alnum:]~!#$%&+-=?,:/;._](?!@)[^(?!.*@)]*.com",'',testset[10])

我收到“无效的正则表达式”错误。我相信在纠正方面的一点帮助可能会使它起作用......

最佳答案

我不敢相信。实际上有一个简单的解决方案。

gsub(" ([[:alnum:]~!#$%&+-=?,:/;._]+)((.com)|(.net)|(.org)|(.info))",' ',text)

这项工作由:

  1. 以空格开头。
  2. 放入各种东西,除了“@”。
  3. 以 .com/net/org/info/结尾

请务必考虑破解它!我相信在某些情况下也会打破这一点。

关于正则表达式帮助 : Identifying websites in text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com