我正在尝试从某些html中提取模式。我正在使用纵梁。
我有一个数字列表,例如nums<-c(">00324R<",">E223143<",">00000F<")
我尝试过str_extract(nums,">[A-Z0-9]{4,}?<")
提取我想要的模式(">00324R<" ">E223143<" ">00000F<"
),但是我不想提取<或>
我知道积极的前瞻可能是这里的答案,但是我似乎无法创建一个可行的方法,我不确定为什么不这样做。我尝试过:
str_extract(nums,"(?<=<)[A-Z0-9]{4,}?<")
答案 0 :(得分:2)
使用以下正则表达式
> str_extract(nums,"(?<=>)[A-Z0-9]{4,}(?=<)")
[1] "00324R" "E223143" "00000F"
详细信息
(?<=>)
-与后面紧跟>
的位置相匹配的正向外观[A-Z0-9]{4,}
-四个或更多大写ASCII字母或数字(?=<)
-与位置相匹配的正向超前查询,后跟<
。请参见regex demo和正则表达式图:
答案 1 :(得分:1)
如果您的字符串非常一致,则可以选择非>
或<
之外的任何内容:
str_extract(nums, "[^<>]+")
# [1] "00324R" "E223143" "00000F"
或gsub()
将它们移走:
gsub("[<|>]", "", nums)
答案 2 :(得分:0)
您可以按如下所示删除“ <”或“>”:
gsub(“ [<|>]”,“”,数字