使用正则表达式查找 `/` 字符作为分隔符,以查找被其他 `/` 字符包裹和未包裹的短语

Finding the `/` character as a separator using regexp as for phrases wrapped and not wrapped by other `/` characters

我正在尝试创建一个可以从字符串中找到 / 的正则表达式,但是必须满足以下规则:

目标是找到所有出现的分隔符 / 满足这样的条件

因此,我想获取以下短语之间的分隔符

/string1/string2/string3//regexp1///regexp2///regexp3//string4/

目前我准备了以下正则表达式,但不幸的是它没有像我预期的那样工作,因为当有 2 个正则表达式彼此相邻时它无法处理。有没有人对如何克服这种情况有任何建议?

((?<=\/)\/(?=\/)|(?<!\/)\/(?!\/)|(?<=\w)\/(?=\/)|(?<=\/)\/(?=\w)|\/$)

您可以交替使用此正则表达式并获取 捕获组 #1:

(?<=\/)(\/[^\/]+\/|[^\/]+)(?:\/|$)

RegEx Demo

正则表达式详细信息:

  • (?<=\/):断言前一个字符是/
  • ( 开始捕获组#1
    • \/:匹配一个/
    • [^/]+: Match 1+ non-/` 个字符
    • \/:匹配一个/
    • |:或
    • [^\/]+:匹配 1+ 个非/字符
  • ): 结束捕获组#1
  • (?:\/|$):匹配一个/或结束位置