regex - perl 一行正则表达式转义 ^ 字符

标签 regex perl

我有以 ^ 字符开头的行,我想以行开头和 ^ 字符。但它不工作。

echo "^./mnt/" |perl -slane ' print if m#^$line$#o' -- -line="^./mnt/"

如何将此正则表达式与作为参数传递的输入正则表达式进行匹配。

这个可以工作,但我想让它在 perl 中工作。

#echo "^./mnt/" |perl -slane ' print if m#^$line$#o' -- -line="\\^./mnt/"
^./mnt/

谢谢 SR

最佳答案

要将文本转换为正则表达式模式,请使用 quotemeta(可能通过\Q..\E)。

echo "^./mnt/" |perl -slne'print if /^\Q$line\E$/' -- -line="^./mnt/"

在这种情况下,您可以使用

echo "^./mnt/" |perl -slne'print if $_ eq $line' -- -line="^./mnt/"

关于regex - perl 一行正则表达式转义 ^ 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225211/

相关文章:

Java 正则表达式参数

regex - Perl 搜索替换为否定前瞻

perl - 使用 Perl 逐行连接两个文件有多少种不同的方法?

perl 进程之间的 perl Win32 信号处理

regex - 打印没有指定单词的行的正则表达式是什么?

python - 正则表达式新手问题 : getting several words/sentences from one line, 最大分隔为 1 个空格?

python - Pandas 正则表达式,用 char 替换 group

javascript - 正则表达式:匹配每行中其他字符之间的奇数重复次数

iphone - linux下编辑二进制plist

regex - 用空格搜索和替换多行文本