排除Regex/gsub中的特定字符串
我可以使用以下方法删除“”和“”之间的所有内容: 理想输出:排除Regex/gsub中的特定字符串,r,regex,R,Regex,我可以使用以下方法删除“”和“”之间的所有内容: 理想输出: [1] "Hello" "I want to keep this <important text>" [1]“你好”“我想留下这个” 您可以使用 character\u vector[1]“你好” ##[2]“我想保留这个和” 请参阅和。)[^>]*>正则表达式匹配 字符,则如果存在CODEEMENTAL text/code或codestring?
[1] "Hello" "I want to keep this <important text>"
[1]“你好”“我想留下这个”
您可以使用
character\u vector[1]“你好”
##[2]“我想保留这个和”
请参阅和。)[^>]*>
正则表达式匹配
字符,则如果存在CODEEMENTAL text/code或codestring?/code,则会导致匹配失败的负前瞻
-零个或多个字符,而不是[^>]*
-一个
字符
regex.escape
函数对于转义任何特殊字符(]
,[
,{
,,(
,)
,+
,*
,^
,
,
,,,
)这在排除字符向量项中出现。它是通过一个前瞻和一个PCRE正则表达式来完成的:gsub(“()[^>]*>”,“,abc,perl=TRUE)
删除了我的注释…您仍在统治,但如果我想为
提供多个参数,该怎么办?我要构建的函数将连接用户提供的值。gsub((()[^>]*>),“,abc,perl=TRUE)
@WiktorStribiżew perfect.谢谢!但有一个问题:字符串中是否有特殊字符要排除?比如(
,[
,?
,+
?如果您无法控制进入替换的内容,这些可能会阻止代码正常工作。非常感谢,这太好了。@Matt这是一个正则表达式,允许完全匹配
的异常。如果您想将它们作为部分字符串排除,您可以替换”)[^>]*>“
和”)[^>]*>“
(只有在
character_vector <- c("<br>Hello</br>", "I want to keep this <important text>")
character_vector <- gsub("(<[^>]*>)","",character_vector)
[1] "Hello" "I want to keep this "
[1] "Hello" "I want to keep this <important text>"