通过PHPUnit使用新行字符串\n测试正则表达式
我创建了一个php库,通过正则表达式解析内容。其中一个正则表达式是通过PHPUnit使用新行字符串\n测试正则表达式,phpunit,newline,Phpunit,Newline,我创建了一个php库,通过正则表达式解析内容。其中一个正则表达式是'#\n-{3,}#'来解析--,只在前面加一个换行符 我还用PHPUnit编写了所有方法的测试,并且使用新行regex的测试总是失败。我总是和你一起测试 我尝试将以下字符串设置为输入: $input=PHP_EOL'--' $input='--' $input='1!' ---'; // 带中断代码 正如预期的那样,我设定: ” 然而,它总是失败,并得到一个错误。如果我将此变量发送到断言检查,它将失败,并且不会解析新行。只有
'#\n-{3,}#'
来解析--
,只在前面加一个换行符
我还用PHPUnit编写了所有方法的测试,并且使用新行regex的测试总是失败。我总是和你一起测试
我尝试将以下字符串设置为输入:
$input=PHP_EOL'--'代码>
$input='
--'代码>
$input='1!'
---'; // 带中断代码
”
\n
的情况下,如'#-{3,}#'
,它才能正常工作,测试不会出错
另外,如果我在测试之前使用一个带有字符串的新行作为输入,它也可以工作,比如
$input=“测试\n--”代码>
-
,它将通过我的标记文件中的这个正则表达式进行替换
在PHPUnit中,如何将字符串前面的新行设置为
assertSame()
函数的输入?问题是在模式中使用单引号
在PHP\n
中,仅当使用双引号时,表示字符串中的“新行”
$input = PHP_EOL . '---';
preg_match("#\n-{3,}#", $input); // this will match
看