我在 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:]] - 标点或符号。
  • 10-05 23:32