gpt4 book ai didi

regex - 仅使用 R 捕获 IP 地址

转载 作者:行者123 更新时间:2023-12-01 12:46:09 26 4
gpt4 key购买 nike

我有 R 对象,其中包含域名和 IP 地址。例如。

11.22.44.55.test.url.com.localhost

我在 R 中使用正则表达式来捕获 IP 地址。我的问题是,当没有匹配项时,整个字符串都会匹配或“输出”。当我处理非常大的数据集时,这成为一个问题。我目前有以下使用正则表达式

sub("([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*","\\1.\\2.\\3.\\4","11.22.44.55.test.url.com.localhost")

这给了我 11.22.44.55

11.22.44.55

但如果我不得不跟随

sub("([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*","\\1.\\2.\\3.\\4","11.22.44.test.url.com.localhost")

然后它给了我

11.22.44.test.url.com.localhost

这实际上是不正确的。想知道是否有任何解决方案。

最佳答案

您可以使用 grep 进行预处理以仅获取按您希望的方式格式化的字符串,然后对这些字符串使用 gsub

x <- c("11.22.44.55.test.url.com.localhost", "11.22.44.test.url.com.localhost")
gsub("((\\d+\\.){3}\\d+)(.*)", "\\1", grep("(\\d+\\.){4}", x, value=TRUE))
#[1] "11.22.44.55"

关于regex - 仅使用 R 捕获 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15734943/

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