R正则表达式 - 从末端删除模式

时间:2015-08-18 06:08:04

标签: regex r

假设我有一个看起来像这样的字符串:

x <- "NNNNAAAJNFHANFFADN"

我如何只从末尾移除N来获得:

"AAAJNFHANFFAD"

3 个答案:

答案 0 :(得分:2)

通过N匹配并删除存在于开头或结尾的gsub

gsub("^N+|N+$", "", x)
  • ^N+匹配一开始就存在的一个或多个N
  • |轮替操作员。
  • N+$匹配最后存在的一个或多个N.

示例:

> x <- "NNNNAAAJNFHANFFADN"
> gsub("^N+|N+$", "", x)
[1] "AAAJNFHANFFAD"

答案 1 :(得分:2)

gsub("^N*([A-Z]*?)N*$", "\\1", x)

您可以在此处使用\1进行反向引用。请参阅演示。

https://regex101.com/r/uF4oY4/66

答案 2 :(得分:2)

用作

gsub("(^N{1,}|N{1,}$)","",x)

https://regex101.com/r/uF4oY4/69