regex - 在 R 统计中创建正则表达式

标签 regex r

我试图在“R”中创建一个正则表达式来为我捕获两组字符,但我似乎无法弄清楚为什么它不起作用。

这是我正在努力实现的目标......

从这个字符串:

"air.BattleofZombies                                   0.0008  0.0006 -0.0027"

我想返回:
"air.BattleofZombies=0.0008  0.0006 -0.0027"

相反,这是我得到的:
"air.BattleofZombie=                                    0.0008  0.0006 -0.0027="

我的正则表达式查询是:
gsub("([^\\s]*)[\\s]*([-?\\d*\\.?\\d*\\s*]*)","\\1=\\2", "air.BattleofZombies                   0.0008  0.0006 -0.0027")

欢迎任何帮助。

最佳答案

我发现字符类更易于使用。 (我认为@Simon 关于 "\s"将匹配的内容是错误的。)

> tst <- "air.BattleofZombies                   0.0008  0.0006 -0.0027"
> sub("[ ]{2,}", "=", tst)
[1] "air.BattleofZombies=0.0008  0.0006 -0.0027"'

请参阅 ?regex 页面并注意这句话:“符号\d、\s、\D 和\S 表示数字和空格类及其否定。”尽管如此,我发现一个文字空间," " , 即使没有字符类机制也经常工作。 (我无法对已删除的帖子发表评论,但我现在看到这是@KaraWoo 之前发布的相同答案,它没有提供预期结果的唯一原因是使用了 gsub。)

关于regex - 在 R 统计中创建正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464711/

相关文章:

r - 计算从昨天收盘价的每日百分比变化并将其应用于多个股票代码的函数

r - 带有 2 个变量、2 个 y 轴的条形图

r - Delphi 中的对数似然实现

r - 将函数应用于列表,然后迭代 r 中的第二个变量

r - 使用 R 访问 ACM 数字图书馆 - 没有 API 那么怎么可能?

java - 使用 matcher.group(index) 得到意想不到的结果

Java 使用正则表达式匹配多个标记

python - 从python中的字符串中删除前导文本字符

java - 如何否定Java中的任何正则表达式

regex - 正则表达式检查用户输入模式