繁体   English   中英

PHP中HEREDOC字符串中的正则表达式

[英]Regular expression inside HEREDOC string in PHP

我有一个CSV文件,其中包含从我的Web应用程序下载的内容:

Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName

现在,我正在编写一个Behat方案,以检查下载文件的内容是否正确,因此在我的步骤定义中,我有此HEREDOC字符串,表示应下载的CSV文件:

$expectedData = <<<CSV
Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName

CSV;

我想做的是用一个正则表达式替换您在$expectedData字符串中可以看到的日期 ,因为在我的Behat方案中,我不知道下载的文件中将出现什么日期...可以吗?

PS对不起,这个问题的质量,但是我对所有这些语言/工具/框架都是陌生的...

是的,请确保可以使用/m (MULTILINE)开关完成此操作。 试试这个代码:

$expectedData = <<<CSV
Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName
CSV;

$re = '/^.+$/'; // some regex here to be placed in 1st column

echo preg_replace('/^(=\d{4}-\d{2}-\d{2})[^,]+/m', $re, $expectedData);

OUTPUT:

Date,Name
/^.+$/,SomeName
/^.+$/,OtherName

$expectedData值是普通字符串,因此可以将其与str_replace()preg_replace()类的函数一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM