如何包括'\1';php中正则表达式preg_replace命令中的替换模式
如何在php中的正则表达式preg_replace命令的替换模式中包含'.\1'。 我的代码:如何包括'\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' 另一个例子: 输入
$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
line2line3
你的代码产生的输出:'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;