用斜杠或反斜杠包围输入文本

Surround input text with slash or backslash

我试图用 \/ 包围输入字符串。输入字符串只能采用以下形式之一。第一个是空字符串。


path
/path
\path
path/
path\
/path/
\path\

我正在尝试 ^[\\/]?|[\\/]?$。它适用于前四个。后四个将与此正则表达式一起使用双斜杠或反斜杠。我知道为什么会这样,但不知道如何解决。我正在使用 PCRE。我希望当输入为空时输出为 /,对于所有其他输入为 /path/

当前输出:

/
/path/
/path/
/path/
/path//
/path//
/path//
/path//

regex101
我只是为了方便才使用多行标志。

编辑:我已经更新了@the-fourth-bird 的解决方案,以替换介于两者之间的 /\

Updated regex : ^[\\/]?|[\\/]+|(?<![\\/])[\\/]?$

编辑 2:u/whereIsMyBroomreddit 时更好。

regex : ^[\\/]?|[\\/]|(?<![\\/])$

您可以在最后一个斜杠之前使用负向后视 (?<![\\/]

编写断言不是 /\ 的模式
^[\\/]?|(?<![\\/])[\\/]?$

Regex demo