【问题标题】:How to use regular expression in R working on a string如何在 R 中使用正则表达式处理字符串
【发布时间】:2013-10-15 14:16:39
【问题描述】:

我正在尝试在 R 中使用正则表达式。我对这种语言很陌生,很抱歉这个基本问题。 我正在处理这个字符串(“11.22.33.44”),我将只使用其中的一部分(“11.22.33”)。我会删除 (".44") 并添加 55 以获得结果 ("11.22.3355")。

【问题讨论】:

  • 字符串长度和格式每次都会改变吗?如果没有,您可以使用substring()
  • 正如@tcash21 所说... 执行regex 的规则是什么
  • 我在谷歌上搜索“R 中的正则表达式”,并在第一个得到regular-expressions.info/rlanguage.html。检查它是否回答了您的疑问。如果是这样,请删除此问题。
  • Thanks for your comment. Thats 是我发布问题的原因。我已经阅读了很多解决方案和规则,但现在我的想法很混乱。例如,我没有考虑将 substring() 作为解决方案。现在我正在尝试使用该函数编写代码
  • @TO THE DOWNVOTER:当然这不是一个“出色的 SO 问题”,但请在投票前先看看这个人的代表。否决某人的第一个问题是令人讨厌的边缘

标签: regex string r


【解决方案1】:
s <- "11.22.33.44"
sub("([[:digit:]]*\\.[[:digit:]]*\\.[[:digit:]]*)(\\.[[:digit:]]+)", "\\1", s)
#[1] "11.22.33"

?regex

使用括号来区分两种不同的模式,并仅返回与第一个模式匹配的部分。第一种模式是由两个句点分隔的任意数量的数字。任何正则表达式函数的第一个参数中的句点都需要转义(两次)。

第二个参数中的"\\1" 是引用第一个模式的示例。第二个参数中的反斜杠与第一个参数中的反斜杠的转义方式不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多