我的行以^字符开头,我想开始行和^ charater。但它没有意义。
echo "^./mnt/" |perl -slane ' print if m#^$line$#o' -- -line="^./mnt/"
如何将此正则表达式与作为参数传递的输入regularrexpression匹配。
这个可行,但我想让它与perl一起工作。
#echo "^./mnt/" |perl -slane ' print if m#^$line$#o' -- -line="\\^./mnt/"
^./mnt/
由于 SR
答案 0 :(得分:2)
您需要转义参数中的特殊字符(就像它直接嵌入到正则表达式中一样)。
echo "^./mnt/" |perl -slane ' print if m#^$line$#o' -- -line="\^\.\/mnt\/"
答案 1 :(得分:2)
要将文本转换为正则表达式模式,请使用quotemeta(可能通过\ Q .. \ E)。
echo "^./mnt/" |perl -slne'print if /^\Q$line\E$/' -- -line="^./mnt/"
在这种情况下,您可以使用
echo "^./mnt/" |perl -slne'print if $_ eq $line' -- -line="^./mnt/"
答案 2 :(得分:1)
可能m#^\Q$line\E#
或m#^\Q$_\E#
但不确定,因为我在windoz盒子上