正则表达式
- preg_filter - 执行一个正则表达式搜索和替换
- preg_grep - 返回匹配模式的数组条目
- preg_last_error - 返回最后一个正则表达式执行产生的错误代码
- preg_match_all - 执行一个全局正则表达式匹配
- preg_match - 执行匹配正则表达式
- preg_quote - 转义正则表达式字符
- preg_replace_callback_array - 执行一个正则表达式搜索并且使用一个回调进行替换
- preg_replace_callback - 执行一个正则表达式搜索并且使用一个回调进行替换
- preg_replace - 执行一个正则表达式的搜索和替换
- preg_split - 通过一个正则表达式分隔字符串
preg_filter
<?php
var_dump(preg_filter('/\d/', '.$0', 233)); // string(6) ".2.3.3"
var_dump(preg_filter('/[a-z]/', '.$0', 233)); // NULL
var_dump(preg_filter('/[a-z]/', '.${0}', 'foo')); // string(6) ".f.o.o"
preg_grep
<?php
var_dump(preg_grep('/[a-z]+/', ['foo', 'bar', 'baz'])); // array(3) { [0]=> string(3) "foo" [1]=> string(3) "bar" [2]=> string(3) "baz" }
var_dump(preg_grep('/^\d+?\.\d+$/', [.1, 22.21, 3])); // array(2) { [0]=> float(0.1) [1]=> float(22.21) }
preg_last_error
<?php
var_dump(preg_last_error()); // int(0)
preg_match_all
<?php
var_dump(preg_match_all('/foo/', 'bar', $matches)); // int(0)
var_dump($matches); // array(1) { [0]=> array(0) { } }
var_dump(preg_match_all('/(foo)(bar)(baz)/', 'foobarbaz', $matches)); // int(1)
var_dump($matches); // array(4) { [0]=> array(1) { [0]=> string(9) "foobarbaz" } [1]=> array(1) { [0]=> string(3) "foo" } [2]=> array(1) { [0]=> string(3) "bar" } [3]=> array(1) { [0]=> string(3) "baz" } }
var_dump(preg_match_all('/(\d+)/', 233, $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> array(1) { [0]=> string(3) "233" } [1]=> array(1) { [0]=> string(3) "233" } }
var_dump(preg_match_all('/([a-z]+)/', 'foo', $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> array(1) { [0]=> string(3) "foo" } [1]=> array(1) { [0]=> string(3) "foo" } }
var_dump(preg_match_all('/([a-z]+)/i', 'FOO', $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> array(1) { [0]=> string(3) "FOO" } [1]=> array(1) { [0]=> string(3) "FOO" } }
var_dump(preg_match_all('/[a-z][a-z][a-z]/', 'foo', $matches)); // int(1)
var_dump($matches); // array(1) { [0]=> array(1) { [0]=> string(3) "foo" } }
preg_match
<?php
var_dump(preg_match('/foo/', 'bar')); // int(0)
var_dump(preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches)); // int(1)
var_dump($matches); // array(4) { [0]=> string(9) "foobarbaz" [1]=> string(3) "foo" [2]=> string(3) "bar" [3]=> string(3) "baz" }
var_dump(preg_match('/(\d+)/', 233, $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> string(3) "233" [1]=> string(3) "233" }
var_dump(preg_match('/([a-z]+)/', 'foo', $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> string(3) "foo" [1]=> string(3) "foo" }
var_dump(preg_match('/([a-z]+)/i', 'FOO', $matches)); // int(1)
var_dump($matches); // array(2) { [0]=> string(3) "FOO" [1]=> string(3) "FOO" }
var_dump(preg_match('/[a-z][a-z][a-z]/', 'foo', $matches)); // int(1)
var_dump($matches); // array(1) { [0]=> string(3) "foo" }
preg_quote
<?php
var_dump(preg_quote('$40 *for* a g3/4.00')); // string(23) "\$40 \*for\* a g3/4\.00"
preg_replace_callback_array
<?php
/**
* Just a test function.
*
* @param array $matches
* @return string
*/
function foo(array $matches): string
{
return 'foo';
}
var_dump(
preg_replace_callback_array(
[
'/(\d+)/' => 'foo',
'/([a-z+])/' => fn(array $matches): string => strtoupper($matches[1])
],
'233foo'
)
); // string(6) "FOOFOO"
preg_replace_callback
<?php
/**
* Just a test function.
*
* @param array $matches
* @return string
*/
function foo(array $matches): string
{
return 'foo';
}
/**
* Just a test function.
*
* @param array $matches
* @return string
*/
function bar(array $matches): string
{
return strtoupper($matches[1]);
}
var_dump(preg_replace_callback('/(\d+)/', 'foo', 233)); // string(3) "foo"
var_dump(preg_replace_callback('/([a-z]+)/', 'bar', 'foo')); // string(3) "FOO"
var_dump(
preg_replace_callback(
'/([a-z]+)/',
function (array $matches): string {
return strtoupper($matches[1]);
},
'foo'
)
); // string(3) "FOO"
var_dump(
preg_replace_callback(
'/([a-z]+)/',
fn(array $matches): string => strtoupper($matches[1]),
'foo'
)
); // string(3) "FOO"
preg_replace
<?php
var_dump(preg_replace('/\d/', '.$0', 233)); // string(6) ".2.3.3"
var_dump(preg_replace('/[a-z]/', '.$0', 233)); // string(3) "233"
var_dump(preg_replace('/[a-z]/', '.${0}', 'foo')); // string(6) ".f.o.o"
var_dump(preg_replace(['/foo/', '/bar/'], ['bar', 'foo'], 'foobar')); // string(6) "foofoo"
var_dump(preg_replace('/\s+/', '', 'foo bar baz')); // string(9) "foobarbaz"
preg_split
<?php
var_dump(preg_split('/ /', 'f o o')); // array(3) { [0]=> string(1) "f" [1]=> string(1) "o" [2]=> string(1) "o" }
var_dump(preg_split('/,/', 'f,o,o')); // array(3) { [0]=> string(1) "f" [1]=> string(1) "o" [2]=> string(1) "o" }
var_dump(preg_split('/[\s,]/', 'f o,o')); // array(3) { [0]=> string(1) "f" [1]=> string(1) "o" [2]=> string(1) "o" }