我试图在“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/