我有一个向量s
字符串(或 NA),并且希望在第一次出现标点符号之前获得一个长度相同的向量(.
).
s <- c("ABC1.2", "22A.2", NA)
我想要这样的结果:
[1] "ABC1" "22A" NA
您可以使用以下类似 Perl 的正则表达式从第一个点删除所有符号(包括换行符):
s <- c("ABC1.2", "22A.2", NA)
gsub("[.][\\s\\S]*$", "", s, perl=T)
## => [1] "ABC1" "22A" NA
See IDEONE演示
正则表达式匹配
-
[.]
- 一个字面点
-
[\\s\\S]*
- 任何符号,包括。换行符
-
$
- 字符串末尾。
所有匹配的字符串都将从输入中删除""
。当正则表达式引擎从左到右分析字符串时,第一个点与\\.
,以及贪婪的*
量词与[\\s\\S]
将匹配所有内容直到字符串末尾。
如果没有换行符,则可以使用更简单的正则表达式:[.].*$
:
gsub("[.].*$", "", s)
See 另一个演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)