我有一个字符串,包含数字,括号和字符。我想将它们分成不同的行。有什么可能的方法呢?谢谢你的帮助。
例如,字符串就像"3. abc4(). 3. efg3() a() 4.ed."
。
最终结果如下:
3. abc4().
3. efg 3() a()
4. ed.
答案 0 :(得分:1)
您可以使用正则表达式执行此操作。这是一种这样的方式
x <- "3. abc4(). 3. efg3() a() 4.ed."
m <- gregexpr("\\d\\..*?(?=\\s*\\d\\.|$)",x, perl=T)
v <- regmatches(x,m)[[1]]
v; #[1] "3. abc4()." "3. efg3() a()" "4.ed."
这样就给出了一个带有每个单独元素的向量。然后,如果你想要,你可以将它们与中间的换行符组合,然后将其打印出来(使用cat
,否则新行打印为“\ n”)
cat(paste(v, collapse="\n"))
# 3. abc4().
# 3. efg3() a()
# 4.ed.
如果您不熟悉正则表达式,它可能看起来有点疯狂,但它会查找一个数字,后跟一个小数。然后它执行一个非贪婪的匹配,当后面的内容只是空格,然后是另一个数字周期组合或字符串的结尾时停止。