我想在php中创建一个匹配所有字符的正则表达式;但包括所有新行。我可以匹配所有字符,除了;很容易与正则表达式:
[^;]
我可以使用正则表达式匹配包括换行符在内的任何字符:
.*/s
但我不确定如何将两者结合起来得到我想要的结果。我宁愿不必创建一个包含所有数字,符号等的大型正则表达式。
答案 0 :(得分:1)
只需使用:
[^;]+
这将匹配换行符(因为它们不是;
),您只需告诉它匹配的不仅仅是一个字符。
演示: Regex101
<强>实施强>
$string = 'foo
bar
abc;123
test
';
preg_match_all('/[^;]+/', $string, $matches);
var_dump($matches);
// array(1) {
// [0]=>
// array(2) {
// [0]=>
// string(13) "foo
// bar
// abc"
// [1]=>
// string(11) "123
// test
// "
// }
// }
<强>替代:强>
您是否有可能只想使用str_replace()
或explode()
,以下是使用与上述$string
相同的示例:
$string = str_replace(';', '', $string);
var_dump($string);
// string(24) "foo
// bar
// abc123
// test
// "
OR
$parts = explode(';', $string);
var_dump($parts);
// array(2) {
// [0]=>
// string(13) "foo
// bar
// abc"
// [1]=>
// string(11) "123
// test
// "
// }