我希望将一个字段分成三个字段:一个有城市,两个有两个不同的数字。数据看起来像这样:
"Mt. Fuji 8-12"
"Taj Majal 10-03"
"Ur"
"Nairobi 04"
我想按如下方式拆分此字段(|
表示字段之间的分隔):
"Mt. Fuji" | 8 | 12
"Taj Majal" | 10 | 03
"Ur" | "" | ""
"Nairobi" | "04" | ""
由于这是在R中完成的,我也可以接受Perl正则表达式。
答案 0 :(得分:2)
你可以这样做,
> x <- "Mt. Fuji 8-12"
> strsplit(x, "[\\s-](?=\\d)", perl=TRUE)
[[1]]
[1] "Mt. Fuji" "8" "12"
仅当[\\s-]
后跟数字字符时, (?=\\d)
才会匹配空格字符或连字符。 (?=\\d)
肯定前瞻断言,断言匹配即[\s-]
必须后跟数字字符。
正如@richard建议的那样..
stringi::stri_split_regex(x, "[\\s-](?=\\d)", simplify = TRUE)