R Regex:仅删除 > 之后的紧随其后的字符
R Regex: removing only the immediate following character after >
我在 R 中有以下字符串:
string1 = "A((..A>B)A"
我想删除所有标点符号,以及 >
之后的字母,即 >B
这是我想要的输出:
output = "AAA"
我尝试使用 gsub()
如下:
output = gsub("[[:punct:]]","", string1)
但这给出了 AABA
,它保留了紧随其后的字符。
这将使用您的工作加上前导回顾首先查找 >
字符之后的内容。
gsub('(?<=>).|[[:punct:]]', '', "A((..A>B)A", perl=TRUE)
## [1] "AAA"
不使用 perl 的稍微不那么复杂的正则表达式似乎也适用于此示例:
gsub("[[:punct:]]|>(.)", "", "A((..A>B)A")
[1] "AAA"
你说
remove all punctation, and the letter immediately after >
标点符号与[[:punct:]]
匹配,字母可以与[[:alpha:]]
匹配,因此,您可以使用TRE正则表达式gsub
:
string1 = "A((..A>B)A"
gsub(">[[:alpha:]]|[[:punct:]]", "", string1)
# => [1] "AAA"
请注意,>
也是与[[:punct:]]
匹配的字符,因此,您不需要在此处进行任何环视,只需将其后跟一个字母删除即可。
图案详情:
>[[:alpha:]]
- >
和任何字母
|
- 或
[[:punct:]]
- 标点符号。
我在 R 中有以下字符串:
string1 = "A((..A>B)A"
我想删除所有标点符号,以及 >
之后的字母,即 >B
这是我想要的输出:
output = "AAA"
我尝试使用 gsub()
如下:
output = gsub("[[:punct:]]","", string1)
但这给出了 AABA
,它保留了紧随其后的字符。
这将使用您的工作加上前导回顾首先查找 >
字符之后的内容。
gsub('(?<=>).|[[:punct:]]', '', "A((..A>B)A", perl=TRUE)
## [1] "AAA"
不使用 perl 的稍微不那么复杂的正则表达式似乎也适用于此示例:
gsub("[[:punct:]]|>(.)", "", "A((..A>B)A")
[1] "AAA"
你说
remove all punctation, and the letter immediately after
>
标点符号与[[:punct:]]
匹配,字母可以与[[:alpha:]]
匹配,因此,您可以使用TRE正则表达式gsub
:
string1 = "A((..A>B)A"
gsub(">[[:alpha:]]|[[:punct:]]", "", string1)
# => [1] "AAA"
请注意,>
也是与[[:punct:]]
匹配的字符,因此,您不需要在此处进行任何环视,只需将其后跟一个字母删除即可。
图案详情:
>[[:alpha:]]
->
和任何字母|
- 或[[:punct:]]
- 标点符号。