没有分隔符的不寻常的替代品

Joh*_*Doe -1 regex perl

我无法破译这个正则表达式是什么:

$c =~ s^.*/^^g;
Run Code Online (Sandbox Code Playgroud)

我无法访问输入或输出.

有没有人知道它的作用?

Bor*_*din 6

默认分隔符s///是斜杠,但您可以使用任何可打印字符作为替代.

所以

$c =~ s^.*/^^g
Run Code Online (Sandbox Code Playgroud)

相当于

$c =~ s/.*\///g
Run Code Online (Sandbox Code Playgroud)

请注意,使用传统的分隔符需要转义模式本身内的斜杠

有些选项比其他选项更好,并且在你只是试图避免在模式中逃避斜线的情况下我认为管道角色|更好

我不希望从这个程序员那里学到太多东西.正如您所经历的那样,^是一个糟糕且令人困惑的选择.此外,/g修饰符是多余的,并且$c是标识符的可怕选择

我会写的

$c =~ s|.*/||
Run Code Online (Sandbox Code Playgroud)