删除尖括号之间的所有子字符串
Remove all substrings between angle brackets
在下面的字符串中
test_string = "This is a te<8239154>st str<ass31>ing."
我想用空字符串替换所有出现的 <xxx>
形式。
我知道我可以使用 gsub("<8239154>", "", "test_string ")
但这不能动态应用于比较符号之间的任何字符串。我怎样才能做到这一点?
您可以使用
gsub("<[^>]*>", "", test_string)
gsub("<[^<>]*>", "", test_string)
<[^>]*>
正则表达式匹配 <
,然后匹配 >
以外的任何零个或多个字符,然后匹配 >
字符。 <[^<>]*>
模式类似,只是它不允许 <
在 <
和 >
之间(这可以方便地删除 innermost 出现 <
和 >
).
参见 this regex demo。
请注意,如果您只需要删除用 <
和 >
符号括起来的字符,您可以使用更具体的解决方案,即
gsub("<\w+>", "", test_string)
其中 \w+
匹配一个或多个字母、数字或下划线。参见 this regex demo。
在下面的字符串中
test_string = "This is a te<8239154>st str<ass31>ing."
我想用空字符串替换所有出现的 <xxx>
形式。
我知道我可以使用 gsub("<8239154>", "", "test_string ")
但这不能动态应用于比较符号之间的任何字符串。我怎样才能做到这一点?
您可以使用
gsub("<[^>]*>", "", test_string)
gsub("<[^<>]*>", "", test_string)
<[^>]*>
正则表达式匹配 <
,然后匹配 >
以外的任何零个或多个字符,然后匹配 >
字符。 <[^<>]*>
模式类似,只是它不允许 <
在 <
和 >
之间(这可以方便地删除 innermost 出现 <
和 >
).
参见 this regex demo。
请注意,如果您只需要删除用 <
和 >
符号括起来的字符,您可以使用更具体的解决方案,即
gsub("<\w+>", "", test_string)
其中 \w+
匹配一个或多个字母、数字或下划线。参见 this regex demo。