gpt4 book ai didi

正则表达式 - 在末尾将多个单词和空格与十进制数字分开

转载 作者:行者123 更新时间:2023-12-01 22:50:40 27 4
gpt4 key购买 nike

我有一个包含单词、空格和数字(整数和小数)的字符串。我想将它们分成数据框中的两列,以便 A 列包含文本,B 列包含数字。这似乎是一项 super 简单的任务,但我不知道如何捕获文本。不过我确实捕捉到了这些数字。

require(tidyr)
df <- data.frame(x = c("This is text0", "This is a bit more text 0.01", "Even more text12.231"))

捕获了 B 列中的数字,但我不知道如何将正则表达式放入第一组括号中以获取 A 中的文本:

df |> 
extract(x, c("A", "B"), "()(\\d+\\.*\\d*)")
# A B
#1 0
#2 0.01
#3 12.231

最佳答案

你可以使用

extract(x, c("A", "B"), "^(.*?)\\s*(\\d+(?:\\.\\d+)?)$")

参见 regex demo

详细信息:

  • ^ - 字符串的开始
  • (.*?) - 第 1 组:除换行符以外的任何零个或多个字符尽可能少
  • \s* - 零个或多个空格
  • (\d+(?:\.\d+)?) - 第 2 组:一位或多位数字,然后是可选的 . 序列和一位或多位数字
  • $ - 字符串结尾

关于正则表达式 - 在末尾将多个单词和空格与十进制数字分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74437648/

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