首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式-提取r中的单词

正则表达式-提取r中的单词
EN

Stack Overflow用户
提问于 2018-07-24 15:23:17
回答 2查看 65关注 0票数 0

如何从这个字符串中提取MLA723950998?

"JM

我成功地提取了司法协助。

代码语言:javascript
复制
gsub('.*(M\\w+).*', '\\1', "https://auto.mercadolibre.com.ar/MLA-723950998-peugeot-208-0km-16-active-plan-100-financiado-darc-_JM")

MLA

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-24 19:40:33

你可以用

代码语言:javascript
复制
.*/(M\w+)-(\d+).*

代之以\1\2

详细信息

  • .*/ -任何0+字符,尽可能多,直到并包括字符串中的最后一个/
  • (M\w+) -第1组(后来使用替换模式中的\1占位符):M和1+字母、数字或/和_
  • - -a连字符
  • (\d+) -第2组(稍后使用替换模式中的\2占位符):一个或多个数字
  • .* -剩下的字符串.

regex演示

R演示

代码语言:javascript
复制
x <- "https://auto.mercadolibre.com.ar/MLA-723950998-peugeot-208-0km-16-active-plan-100-financiado-darc-_JM"
gsub('.*/(M\\w+)-(\\d+).*', '\\1\\2', x)
# => [1] "MLA723950998"
票数 1
EN

Stack Overflow用户

发布于 2018-07-24 15:59:47

也许这个解决方案对你有用:

代码语言:javascript
复制
library(stringi)
x = "https://auto.mercadolibre.com.ar/MLA-723950998-peugeot-208-0km-16-active-plan-100-financiado-darc-_JM"
stri_extract_last_regex(x, "(?<=/)([A-Za-z]+.\\d+)(?=[^/]+$)")
[1] "MLA-723950998"

(i)第一次向后看后发现斜杠的位置;。(ii)其后是字母、1 x任何字符及数字;。(iii)向前看,其后只可加上斜线。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51502354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档