我想在字符串中的空格后删除所有内容。
例如:
“我的字符串很难过”
应该返回
“我的”
我一直试图弄清楚如何使用sub / qsub做到这一点,但到目前为止还没有成功。很感谢任何形式的帮助。
答案 0 :(得分:9)
strsplit("my string is sad"," ")[[1]][1]
答案 1 :(得分:8)
或者,将第一个空格后面的所有内容替换为空白:
gsub(' [A-z ]*', '' , 'my string is sad')
还有数字:
gsub('([0-9]+) .*', '\\1', c('c123123123 0320.1'))
答案 2 :(得分:6)
您可以使用像
这样的正则表达式sub(" .*", "", x)
请参阅regex demo。
在这里,sub
只执行单个搜索和替换操作, .*
模式将找到第一个空格(因为正则表达式引擎从左到右搜索字符串)和{{1} }匹配任何零个或多个字符(在TRE正则表达式中,甚至包括换行符,在使用.*
时要小心,然后情况并非如此),尽可能多,直到字符串结尾。
一些变化:
perl=TRUE
请参阅online R demo。
答案 3 :(得分:3)
如果你想用正则表达式来做:
gsub('([A-z]+) .*', '\\1', 'my string is sad')