我想删除/ query之前的所有内容...例如
我不知道正则表达式所以这样做对我来说很难
注意:引用应为/query
,因为下面提到的链接可能有一些不同的模式,例如 - www.abcd.wsd/asd/asdcd/asrr/query=xyz
www.html.com/query=abcd
应该导致
query = abcd
答案 0 :(得分:2)
我们可以滥用基本名称功能,它旨在获取文件名,删除所有文件夹:
basename("www.abcd.wsd/asd/asdcd/asrr/query=xyz")
# [1] "query=xyz"
basename("www.html.com/query=abcd")
# [1] "query=abcd"
请注意,当query
不在最后时,这将失败:
basename("www.html.com/query=abcd/xyz")
# [1] "xyz"
答案 1 :(得分:1)
一个通用的正则表达式解决方案,用于提取在query
之后出现的/
,后面跟着/
以外的字符
s <- c("www.abcd.wsd/asd/asdcd/asrr/query=xyz","www.html.com/query=abcd","www.cmpnt.com/query=fgh/noquery=dd")
sub("^.*/(query[^/]*).*$", "\\1", s)
## => "query=xyz" "query=abcd" "query=fgh"
请参阅this R demo
正则表达式是
^.*/(query[^/]*).*$
请参阅regex demo
<强>详情:
^
- 字符串开头.*
- 尽可能多地匹配任意0个字符,直到最后一个/
- 一个字面的正斜杠字符(query[^/]*)
- 捕获与query
子字符串匹配的组1,后跟除/
以外的0 +字符(请参阅带有[^/]*
量词的*
否定字符类).*
- 零个或多个任何字符$
- 字符串的结尾。答案 2 :(得分:1)
另一种选择是:
sub('.*/query', '/query', 'www.html.com/query=abcd')
,即替换&#34;所有字符,包括[查询的最后一个实例] /查询&#34;使用&#34; / query&#34;。
答案 3 :(得分:0)
string<-c('www.abcd.wsd/asd/asdcd/asrr/query=xyz','www.html.com/query=abcd')
gsub('.*\\/([^/]+)$','\\1',string)
#[1] "query=xyz" "query=abcd"