PHP字符串操作和正则表达式

本文详细介绍了PHP中的字符串操作方法,包括字符串格式化、大小写转换、连接与分割、比较、查找与替换等实用技巧,同时还涵盖了PHP与正则表达式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP字符串操作

1、字符串格式化

1)去除空格
trim():去除字符串开始位置和结束位置的空格;
ltrim():去除字符串左端的空格;
rtrim():去除字符串右端的空格;

2)格式化输出
printf(string format,mixed args):string:返回一个新的字符串,用法同C语言;
sprintf(string format,mixed args ):void:不返回字符串,直接覆盖原来的字符串,用法同C;
nl2br(string):使用HTML格式化,在string所有新行之前插入<br/>(将所有“\n”替换成<br/>);
vprintf(),vsprintf():接收的参数 :格式化字符串,参数数组;

3)格式化字符串(储存到数据库之前的预处理)
addslashes():为字符串参数的特殊字符添加(\);
stripslashes():反引用(\);

4)大小写转换
strtoupper():将字符串全部转化为大写;
strtolower():将字符串全部转化为小写;
ucfirst():将字符串首字母转化为大写;
ucword():将字符串每一个单词首字母转化为大写;

2、字符串的连接和分割
1)全分割和组装:
explode(separater,string):string必须是全大写或全小写,使用separater分割string,返回array;
implode(separater,array)/ join():使用separater组装array,返回string

2)单项分割:
strtok(str,separater):每次有separater令牌截取一段string,同时指针前移,(重置指针:将string重新传个给该函数);
substr(string,start,[length]):获取string从start开始的字串;
                注:strat为负数时,从尾部开始计数数位;length为负数时,从尾部开始计数忽略的数位;

3、字符串的比较

1)字符串的大小比较
strcmp(string1,string2):二进制安全比较,区分大小写,返回int;
strcasecmp(string1,string2):二进制安全比较,不区分大小写;
strnatcmp(string1,string2):自然顺序比较,区分大小写;

2)字符串长度
strlen():测试字符串长度;

4、字符串的查找和替换

1)查找字串的字串:
strstr(haystack,needle)/strchr( ):从haystack中查找needle,返回needle第一次出现到结尾的haystack字串/false;
stristr():strstr()的不区分大小写版本;
strrchr(haystack,needle):返回needle最后一次出现到结尾的haystack字串/false;

strpos(haystack,needle):返回needle在haystack第一次出现的位置(int)/false;
strrpos():返回neddle最后一次出现的位置;
※strpos()效率比strstr()要高;
    strpos()判断:if(strpos($example,'needle')===false){ }

2)替换字串的子串:
str_replace(mixed neddle,mixed new_needle, mixed haystack ,[int count]):用new_needle替换haystack中的所有needle,count可以规定替换的次数,needle可以是array,string或其他;
substr_replace(string,replacement,start,[length]):用replacement替换string的start开始的字串;



php与正则表达式

1、正则表达式匹配

ereg(string pattern,string search,array):int: 在search中搜索能与pattern相匹配的字符串,并将其装载在array中;
eregi():ereg()的忽略大小写版本;
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int$offset = 0 ]]] )
※使用preg_match( )来代替ereg;
※没有匹配——返回false,没有传入array或search长度为0——返回1;
     array[0]全部匹配项,array[1]array[2]...其他匹配项;

2、正则表达式替换字符串

ereg_replace(pattern,replacement,search):string:用replacement替换search中的pattern匹配部分;
eregi_replace():不区分大小写版本;

※一般对于相同的功能,正则表达式函数的运行效率要低于字符串函数;

3、正则表达式查询表
用于POSIX风格的正则表达式字符类

匹配
匹配
[[:alnum:]]
文字数字字符
 [[:punct:]]
标点符号
[[:alpha:]]
字母字符
[[:blank:]]
制表符和空格
[[:lower:]]
大写字母
[[:space:]]
空白字符
[[:upper:]]
小写字母
[[:cntrl:]]
控制符
[[:digit:]]
小数
[[:print:]]
所有可打印字符
[[:xdigit:]]
十六进制数字
[[:graph:]]
出空格外的可打印字符

在POSIX正则表达式中,用于方括号之外的特殊字符

字符
意义
字符
意义
\
转义字符
(   )
子模式,括号内的字串完全匹配,如(very)*
^
在字符串的开始匹配
{   }
最小/最大量记号
$
在字符串末尾匹配
*
匹配0次或更多次
.
匹配除了(\n)之外的所有字符
+
匹配1次或更多次
|
选择分支的开始
?
只允许匹配1次,但非必须匹配

在POSIX正则表达式中,用于方括号内外的特殊字符

字符
意义
字符
意义
\
转义字符
^
非,仅用在开始位置
-
用于指明字符范围



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值