Perl命令行打印 - 在命令行测试Regexp

时间:2013-12-22 03:02:26

标签: regex perl powershell

我是Perl的新手,我正试图弄清楚如何让这个东西起作用。

我在这个帖子中找到了一个例子:Perl Regex - Print the matched value

以下是我正在尝试使用的示例:

perl -e '$str="the variable Xy = 3 in this case"; print $str =~ /(Xy = 3)/;'

我已尝试使用cmd运行它,但这会产生此错误:

“在-e第1行的EOF之前的任何地方找不到字符串终结符”。

当我在powershell中运行时,没有任何事情发生。

我的最终目标是在命令行设置变量,运行正则表达式查找(有时替换),然后打印结果。这样我每次编写正则表达式模式时都不必编写脚本。

我尝试过使用调试器,但在设置变量后执行此操作时没有任何反应:

print $str =~ /(Xy = 3)/;

2 个答案:

答案 0 :(得分:1)

最好将您的语句放在Windows环境中的Perl脚本中,因为您需要大多数Perl内容的双引号,但最终在命令行上转义会变得混乱。

答案 1 :(得分:0)

好吧,我为powershell想出来了。我不得不逃避双引号。

perl -e '$str=\"the variable Xy = 3 in this case\"; print $str =~ /(Xy = 3)/;'

同样适用于cmd,除了我必须用双引号替换单引号,因为单引号不是字符串分隔符。

perl -e "$str=\"the variable Xy = 3 in this case\"; print $str =~ /(Xy = 3)/;"