代码之家  ›  专栏  ›  技术社区  ›  SteveS

Regex在R中拆分位置?

  •  3
  • SteveS  · 技术社区  · 6 年前

    我有以下地点:

    "0.0000000.000000"
    "32.09447434.821947"
    

    我想分头说清楚:

    0.000000, 0.000000
    32.094474, 34.821947
    

    我使用以下regex模式:

    "\\d{1,}.\\d{6}"
    

    以及各种拆分函数,请告知我遗漏了什么,我不能将其拆分为2个坐标值。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Wiktor Stribiżew    6 年前

    x <- c("0.0000000.000000", "32.09447434.821947")
    regmatches(x, gregexpr("\\d+\\.\\d{6}", x))
    [[1]]
    [1] "0.000000" "0.000000"
    
    [[2]]
    [1] "32.094474" "34.821947"
    

    {1,} +

    stringr::str_extract_all(x, "\\d+\\.\\d{6}")
    
        2
  •  1
  •   akrun    6 年前

    strsplit

    strsplit(str1, "(?<=\\.[0-9]{6})", perl = TRUE)
    #[[1]]
    #[1] "0.000000" "0.000000"
    
    #[[2]]
    #[1] "32.094474" "34.821947"
    

    str1 <- c("0.0000000.000000", "32.09447434.821947")