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

标签 php regex csv heredoc behat

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

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 场景中我不知道下载的文件中将出现哪些日期...可能吗?

P.S.很抱歉这个问题的质量,但我对所有这些语言/工具/框架都很陌生......

最佳答案

是的,当然可以使用/m(多行)开关来完成。试试这个代码:

$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);

输出:

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

关于php - PHP 中 HEREDOC 字符串内的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295569/

相关文章:

php - count() 发出 E_WARNING

python - python中的正则表达式多次删除字符和数字的孤立出现

sql-server - 在 SQL 中遍历多个 CSV

java - 给定正则表达式匹配的 boolean 变量值的结果应该是什么?

php - 需要防止 PHP 正则表达式段错误

javascript - 从 Javascript 读取硬编码 csv 文件的最佳实践

php - 分解 csv 文件并重新创建数组

php - 输入 html 的月份不允许从数据库获取动态日期?

php - 从评论表中查询哪些与自己相关?

php - 我应该为用户个人地址和用户组地址准备 1 个或 2 个表吗?