我有一个regex
边缘案例,我无法解决。我需要grep
从字符串中删除前导句点(如果存在)和最后一个句点后面的文本(如果存在)。
即给定一个向量:
x <- c("abc.txt", "abc.com.plist", ".abc.com")
我想得到输出:
[1] "abc" "abc.com" "abc"
前两个案例已经解决,我在this related question获得了帮助。但不适用于带有.
我确信这是微不足道的,但我没有建立联系。
答案 0 :(得分:4)
这个正则表达式做你想要的:
^\.+|\.[^.]*$
用空字符串替换匹配。
在R:
gsub("^\\.+|\\.[^.]*$", "", subject, perl=TRUE);
<强>说明:强>
^ # Anchor the match to the start of the string
\.+ # and match one or more dots
| # OR
\. # Match a dot
[^.]* # plus any characters except dots
$ # anchored to the end of the string.