gpt4 book ai didi

regex - 将数字与 R 中的文本分开

转载 作者:行者123 更新时间:2023-12-01 11:07:23 25 4
gpt4 key购买 nike

我有一些文字:

text="blablabla 400ft blablabla"

我想得到:

"blablabla 400 ft blablabla"

命令:

unlist(strsplit(text,split="[^0-9]+"))
gsub("[^0-9]+", " ", text, fixed = FALSE)

只返回 400。

我想对 gsub 说:将您在文本中找到的每个数字替换为相同的数字加上开头和结尾的空格。我该怎么做?

最佳答案

如果在某些情况下您想要将数字与“ft”分开,例如,而不是其他情况,您也可以使用环视:

text="blablabla 400ft blablabla 400notft"

gsub('(?<=\\d)(?=ft)', ' ', text, perl = TRUE)

# [1] "blablabla 400 ft blablabla 400notft"

gsub('([0-9]+)([^0-9]+)', '\\1\\2', text) 相反,无论怎样都会分开接下来会发生什么:

gsub('([0-9]+)([^0-9]+)', '\\1 \\2', text)

# [1] "blablabla 400 ft blablabla 400 notft"

您还可以使用其他条件:

text="blablabla 400ft blablabla 400notft blablabla 400in"

gsub('(?<=\\d)(?=ft|in)', ' ', text, perl = TRUE)
# [1] "blablabla 400 ft blablabla 400notft blablabla 400 in"

或者说您需要在保留上述规则的同时在字母和数字之间添加空格:

text2 <- 'blblabla 400ft blablaba400ft 400 blabla 400notft blah400notft'
gsub('(?<=[A-Za-z])(?=\\d+)|(?<=\\d)(?=ft|in)', ' ', text2, perl = TRUE)

# [1] "blblabla 400 ft blablaba 400 ft 400 blabla 400notft blah 400notft"

关于regex - 将数字与 R 中的文本分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29238583/

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