使用正则表达式查找 `/` 字符作为分隔符,以查找被其他 `/` 字符包裹和未包裹的短语
Finding the `/` character as a separator using regexp as for phrases wrapped and not wrapped by other `/` characters
我正在尝试创建一个可以从字符串中找到 /
的正则表达式,但是必须满足以下规则:
/
是每个字符串之间的分隔符,例如:/string1/string2/string3/
/
也是正则表达式之间的分隔符,如/regexp1//regexp2//regexp3/
目标是找到所有出现的分隔符 /
满足这样的条件
因此,我想获取以下短语之间的分隔符
string1
string2
string3
/regexp1/
/regexp2/
/regexp3/
string4
/string1/string2/string3//regexp1///regexp2///regexp3//string4/
目前我准备了以下正则表达式,但不幸的是它没有像我预期的那样工作,因为当有 2 个正则表达式彼此相邻时它无法处理。有没有人对如何克服这种情况有任何建议?
((?<=\/)\/(?=\/)|(?<!\/)\/(?!\/)|(?<=\w)\/(?=\/)|(?<=\/)\/(?=\w)|\/$)
您可以交替使用此正则表达式并获取 捕获组 #1:
(?<=\/)(\/[^\/]+\/|[^\/]+)(?:\/|$)
正则表达式详细信息:
(?<=\/)
:断言前一个字符是/
(
开始捕获组#1
\/
:匹配一个/
- [^/]+
: Match 1+ non-
/` 个字符
\/
:匹配一个/
|
:或
[^\/]+
:匹配 1+ 个非/
字符
)
: 结束捕获组#1
(?:\/|$)
:匹配一个/
或结束位置
我正在尝试创建一个可以从字符串中找到 /
的正则表达式,但是必须满足以下规则:
/
是每个字符串之间的分隔符,例如:/string1/string2/string3//
也是正则表达式之间的分隔符,如/regexp1//regexp2//regexp3/
目标是找到所有出现的分隔符 /
满足这样的条件
因此,我想获取以下短语之间的分隔符
string1
string2
string3
/regexp1/
/regexp2/
/regexp3/
string4
/string1/string2/string3//regexp1///regexp2///regexp3//string4/
目前我准备了以下正则表达式,但不幸的是它没有像我预期的那样工作,因为当有 2 个正则表达式彼此相邻时它无法处理。有没有人对如何克服这种情况有任何建议?
((?<=\/)\/(?=\/)|(?<!\/)\/(?!\/)|(?<=\w)\/(?=\/)|(?<=\/)\/(?=\w)|\/$)
您可以交替使用此正则表达式并获取 捕获组 #1:
(?<=\/)(\/[^\/]+\/|[^\/]+)(?:\/|$)
正则表达式详细信息:
(?<=\/)
:断言前一个字符是/
(
开始捕获组#1\/
:匹配一个/
- [^/]+
: Match 1+ non-
/` 个字符 \/
:匹配一个/
|
:或[^\/]+
:匹配 1+ 个非/
字符
)
: 结束捕获组#1(?:\/|$)
:匹配一个/
或结束位置