Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
如何包括'\1';php中正则表达式preg_replace命令中的替换模式_Php_Regex - Fatal编程技术网

如何包括'\1';php中正则表达式preg_replace命令中的替换模式

如何包括'\1';php中正则表达式preg_replace命令中的替换模式,php,regex,Php,Regex,如何在php中的正则表达式preg_replace命令的替换模式中包含'.\1'。 我的代码: $input = $_GET['post']; $str = $input; $pattern = "(.+)"; $output = preg_replace($pattern, ".'\1'", $str); echo $output; 谢谢 测试输入,所需输出为: 输入: 输出: .'line1' .'line2' .'line3' 另一个例子: 输入

如何在php中的正则表达式preg_replace命令的替换模式中包含'.\1'。 我的代码:

$input = $_GET['post'];
$str = $input;
$pattern = "(.+)";
$output = preg_replace($pattern, ".'\1'", $str);
echo $output;
谢谢

测试输入,所需输出为: 输入:

输出:

.'line1'
.'line2'
.'line3'
另一个例子: 输入:

输出:

.'line1'

.'line3'

示例1输入,输出:输入字符串:
test
输出字符串:
'test'

我认为对于这样简单的任务,preg函数的成本很高。你最好使用连接

$str = ".".$str;
但如果你想:

$str = "test";
$pattern = "/(.+)/";
$output = preg_replace($pattern, '.$1', $str);
echo $output;
UPD:

<?php
$str = <<<HERE
line1
line2 line3


line4
HERE;

$output = preg_replace("/^(?!\s)(.*?)\r?\n?$/m", ".'$1'", $str);

echo $output;
试试这个:

<?php
$str = <<<HERE
line1
line2 line3


line4
HERE;

$output = preg_replace("/^(.*?)\r?\n?$/m", ".'$1'", $str);

echo $output;

请为您的问题添加示例输入和输出。示例1输入,输出:输入字符串:
测试
输出字符串:
测试
示例2输入,输出:输入字符串:
行1
行2
输出字符串:
行1'
行2'欢迎使用SO。请编辑您的问题,而不是在注释中添加测试数据。我们如何将'.\1'转换为字符串,以在php中的preg_replace命令中包含双量化标记:“.\1”“。我需要在输入字符串的每一行的第一行添加'.'并在输入字符串的每一行的末尾添加'.'string@Saeed我更新了代码。请再次检查,谢谢你的回复,我测试了你的代码,它不能像我需要的那样工作:它产生的样本输入和输出:样本输入:
line1
line2
line3
你的代码产生的输出:
'line'
.line'
'line'
但我们需要的输出是:
'line1'
'line2'
'line3'
我看到了最后的结果最后一行的符号真的被删除了。我修正了正则表达式函数。请再查一遍。现在应该可以了。这里是演示:谢谢你的回复。我测试了你的代码,它可以工作,但需要改进。如果在输入的代码行之间有一个空行,那么输出也需要是一个空行。但是引入的代码在第一行生成
,在另一行生成
。示例输入:
line1
line3
所需输出:
'line1'
'line3'
,但产品输出为:
'line1'
'
'line3'
<?php
$str = <<<HERE
line1
line2 line3


line4
HERE;

$output = preg_replace("/^(.*?)\r?\n?$/m", ".'$1'", $str);

echo $output;
<?php
$str = <<<HERE
line1
line2 line3


line4
HERE;

$output = preg_replace("/^(?!\s)(.*?)\r?\n?$/m", ".'$1'", $str);

echo $output;