用斜杠或反斜杠包围输入文本
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/whereIsMyBroom
在 reddit 时更好。
regex : ^[\\/]?|[\\/]|(?<![\\/])$
您可以在最后一个斜杠之前使用负向后视 (?<![\\/]
编写断言不是 /
或 \
的模式
^[\\/]?|(?<![\\/])[\\/]?$
我试图用 \
或 /
包围输入字符串。输入字符串只能采用以下形式之一。第一个是空字符串。
path
/path
\path
path/
path\
/path/
\path\
我正在尝试 ^[\\/]?|[\\/]?$
。它适用于前四个。后四个将与此正则表达式一起使用双斜杠或反斜杠。我知道为什么会这样,但不知道如何解决。我正在使用 PCRE。我希望当输入为空时输出为 /
,对于所有其他输入为 /path/
。
当前输出:
/
/path/
/path/
/path/
/path//
/path//
/path//
/path//
regex101
我只是为了方便才使用多行标志。
编辑:我已经更新了@the-fourth-bird 的解决方案,以替换介于两者之间的 /
或 \
。
Updated regex : ^[\\/]?|[\\/]+|(?<![\\/])[\\/]?$
编辑 2:u/whereIsMyBroom
在 reddit 时更好。
regex : ^[\\/]?|[\\/]|(?<![\\/])$
您可以在最后一个斜杠之前使用负向后视 (?<![\\/]
/
或 \
的模式
^[\\/]?|(?<![\\/])[\\/]?$