我在 R 中有以下字符串:
string1 = "A((..A>B)A"
我想删除所有标点符号和
>
之后的字母,即 >B
这是我想要的输出:
output = "AAA"
我尝试使用
gsub()
如下:output = gsub("[[:punct:]]","", string1)
但这给出了
AABA
,它保留了紧随其后的字符。 最佳答案
你说
标点符号与 [[:punct:]]
匹配,字母可以与 [[:alpha:]]
匹配,因此,您可以使用带有 gsub
的 TRE 正则表达式:
string1 = "A((..A>B)A"
gsub(">[[:alpha:]]|[[:punct:]]", "", string1)
# => [1] "AAA"
查看 online R demo
请注意,
>
也是与 [[:punct:]]
匹配的字符,因此,这里不需要任何环顾,只需在其后添加一个字母即可将其删除。模式详细信息 :
>[[:alpha:]]
- >
和任何字母 |
- 或 [[:punct:]]
- 标点或符号。