如何在正则表达式中使用不同的分隔符(/,|)

Fil*_*ria 1 regex perl replace

修改Perl脚本,我得到了这个:

$var =~ s,/$,,;
Run Code Online (Sandbox Code Playgroud)

它似乎是一个正则表达式模式,但我期望找到"/"(或"|")而不是","作为分隔符.

所以问题是: 何时以及为什么要使用正则表达式模式"/"或"|" 要么 ","?

TLP*_*TLP 6

在Perl中,在替换运算符以及许多其他运算符中,您可以将分隔符替换为几乎所有标点符号,例如

s#/$##
s=/$==
s!/$!!
Run Code Online (Sandbox Code Playgroud)

当你需要的时候使用哪一个.最好选择一个与正则表达式中的字符不冲突的分隔符,以及一个可读的分隔符.

在您的情况下,使用了不同的分隔符,/因为要在正则表达式中包含斜杠,以删除尾部斜杠.使用默认分隔符,它将是:

s/\/$//
Run Code Online (Sandbox Code Playgroud)

这不是那么容易阅读.

就像我上面提到的,你可以用很多运算符和函数来做到这一点:

m#...#
qw/.../
qw#...#
tr;...;;
qq?...?
Run Code Online (Sandbox Code Playgroud)