首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从a/b/c /d:Z 1234提取a/b/c和从a/b/c:Y 5678提取a/b/c

从a/b/c /d:Z 1234提取a/b/c和从a/b/c:Y 5678提取a/b/c
EN

Stack Overflow用户
提问于 2021-09-10 22:31:33
回答 2查看 35关注 0票数 2

我有苹果/香蕉/橘子/樱桃:Z 1234和鳄梨/哈密瓜/西瓜:Y 5678。

如何将苹果/香蕉/橘子和鳄梨/哈密瓜/西瓜的单品搭配起来呢?

如果我放r'(.+?/.+?/.+?):.*,我会得到鳄梨/哈密瓜/西瓜,但我会得到苹果/香蕉/橘子/樱桃(目标应该是苹果/香蕉/橘子)

如果我放r'(.+?/.+?/.+?)/.*,我会得到苹果/香蕉/橘子,但我会得到鳄梨/香瓜/西瓜:Y 5678(目标应该是鳄梨/香瓜/西瓜)。

如何用单一正则表达式来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-10 22:41:39

使用

代码语言:javascript
复制
[^/:\s]+(?:/[^/:\s]+){2}

正则证明

解释

代码语言:javascript
复制
--------------------------------------------------------------------------------
  [^/:\s]+                 any character except: '/', ':', whitespace
                           (\n, \r, \t, \f, and " ") (1 or more times
                           (matching the most amount possible))
--------------------------------------------------------------------------------
  (?:                      group, but do not capture (2 times):
--------------------------------------------------------------------------------
    /                        '/'
--------------------------------------------------------------------------------
    [^/:\s]+                 any character except: '/', ':',
                             whitespace (\n, \r, \t, \f, and " ") (1
                             or more times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  ){2}                     end of grouping
票数 2
EN

Stack Overflow用户

发布于 2021-09-10 22:45:31

您似乎在寻找不包含斜杠或冒号的部件,所以[^/:]+/[^/:]+/[^/:]+

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

https://stackoverflow.com/questions/69138575

复制
相关文章

相似问题

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