Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何正确转义Perl pie的搜索字符串_Regex_Perl - Fatal编程技术网

Regex 如何正确转义Perl pie的搜索字符串

Regex 如何正确转义Perl pie的搜索字符串,regex,perl,Regex,Perl,我使用这个经典的perl one liner递归地替换多个文件中的字符串 perl -pi -e 's/oldstring/newstring/g' `grep -irl oldstring *` 但这让我失望,因为我想找到字符串: '$user->primaryorganisation->id' 并替换为 $user->primaryorganisation->id 我似乎无法正确地转义字符串以使该行成功运行 感谢您的帮助 试试这个。很多逃犯。按照TLPs建议使用

我使用这个经典的perl one liner递归地替换多个文件中的字符串

perl -pi -e 's/oldstring/newstring/g' `grep -irl oldstring *`
但这让我失望,因为我想找到字符串:

'$user->primaryorganisation->id'
并替换为

$user->primaryorganisation->id
我似乎无法正确地转义字符串以使该行成功运行


感谢您的帮助

试试这个。很多逃犯。按照TLPs建议使用源文件

perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl  "'\$user->primaryorganisation->id'" *`
说明:

  • 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个逃逸壳的
    $
    ;这使得Perl的
    \$
    需要反斜杠来转义变量插值
  • 双引号
    将单引号
    放入其中
  • 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号

试试这个。有很多逃逸。按照TLPs的建议,使用源文件

perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl  "'\$user->primaryorganisation->id'" *`
说明:

  • 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个反斜杠转义shell的
    $
    ;这使得Perl的
    \$
    需要反斜杠来转义变量插值
  • 双引号
    将单引号
    放入其中
  • 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号

试试这个。很多逃犯。按照TLPs建议使用源文件

perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl  "'\$user->primaryorganisation->id'" *`
说明:

  • 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个逃逸壳的
    $
    ;这使得Perl的
    \$
    需要反斜杠来转义变量插值
  • 双引号
    将单引号
    放入其中
  • 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号

试试这个。有很多逃逸。按照TLPs的建议,使用源文件

perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl  "'\$user->primaryorganisation->id'" *`
说明:

  • 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个反斜杠转义shell的
    $
    ;这使得Perl的
    \$
    需要反斜杠来转义变量插值
  • 双引号
    将单引号
    放入其中
  • 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号

如果您想在perl中表示单引号,但由于一行程序本身使用单引号而无法表示,则可以使用单引号的八进制代码
\047
。因此,这应该是可行的:

s/\047(\$user->primaryorganisation->id)\047/$1/g

我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:

s/\047(\$user->primaryorganisation->id)\047/$1/g

我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:

s/\047(\$user->primaryorganisation->id)\047/$1/g

我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:

s/\047(\$user->primaryorganisation->id)\047/$1/g
我推荐Maher的Minimal Perl,因为它比您想知道的关于一行Perl的艺术要多得多。

...'...
您可以使用

'...'\''...'
因此,

s/'(\$user->primaryorganisation->id)'/$1/g
变成

's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以

产生

...'...
您可以使用

'...'\''...'
因此,

s/'(\$user->primaryorganisation->id)'/$1/g
变成

's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以

产生

...'...
您可以使用

'...'\''...'
因此,

s/'(\$user->primaryorganisation->id)'/$1/g
变成

's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以

产生

...'...
您可以使用

'...'\''...'
因此,

s/'(\$user->primaryorganisation->id)'/$1/g
变成

's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以


您可以使用源文件替换
-e
代码:
perl-pi source.pl.
您可以使用源文件替换
-e
代码:
perl-pi source.pl.
您可以使用替换
-e
代码的源文件:
perl-pi source.pl.
使用源文件替换
-e
代码:
perl-pi source.pl.
解释应该获得额外的学分,您可以在这里保存一层转义。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。