php中字符串和正则表达式的详细解释
首先,字符串类型的特征
1.PHP是弱类型语言,其他数据类型一般可以直接应用于字符串函数操作。
?phpecho substr('123456 ',2,4);//输出345echo substr(123456,2,4);//输出345echo hello//先找hello常量。如果没有找到,用hello作为字符串?2.字符串可以用作“数组”,它是字符的集合。
?PHP $ str=' www . JB 51 . net ';echo $ str[0];echo $ str[1];echo $ str[2];但是,字符串不是真正的数组,因此不能使用数组函数。例如,count($str)不会返回字符串长度。PHP引擎无法区分字符和数组,导致歧义。从PHP4开始,括号被花括号取代。
?Php//为了确保向后兼容,方括号仍然可以使用$ str=www.jb51.net;echo $ str { 0 };echo $ str { 1 };echo $ str { 2 };3.双引号变量分辨率
在PHP中,当字符串由双引号或分隔符定义时,其中的变量将被解析。
?php$arr=array('name'='dwqs ',' add '=' www . ido 321.com ');echo ' $ arr[name]';//可以解析,但方括号内不能用引号。//echo ' $ arr[' name ']';错误回显“{ $ arr[' name ']}”;//可以解析,元素包含在花括号里,名字不带引号就可以了。//假设对象$squareecho '$square-width '存在;//可以解析回声“$ square-width 00 cent”;//无法解析,用花括号求解回显' $ square-width } width 00 cent ';//可以解决吗?二、字符串输出功能
三、常用的字符串格式函数
PS:PHP的大多数字符串处理函数不修改源字符串,而是返回一个新的字符串
第四,正则表达式
正则表达式描述了一种字符串匹配模式,通过这种模式,字符串在特定函数中被匹配、搜索、替换和分离。它是由原子、元字符和模式修饰符组成的文字模式。
在PHP中,有两个常规的处理函数库:PCRE和POSIX。前者以前缀preg_命名,与Perl兼容。后者以ereg_ prefix命名。两者功能相似,但PCRE的效率略高。
Perl兼容的正则表达式处理程序:
1.语法
1.1分隔符:在与Perl兼容的常规函数中使用模式时,必须给模式添加一个分隔符。除字母、数字和反斜杠(\)之外的任何字符都可以用作定界符号
?Php//以下常规法律回显$ m1='/\/\ w/';echo $ m2=' |(\ d { 3 })-\ d | Sm ';echo $m3='!^(?i)php[34]!”;echo $m4='{^\s (\s)?$}';1.2原子:原子包含普通字符,如字母和数字;非打印字符,如空格和回车;特殊字符和元字符,如引号,*等。必须用“\”转义;用户定义的原子表,如[apj]和[a-z];常见字符类型,如\d,\D.
?Php//以下两个是等价的,匹配电子邮件$ mail 1='/[0-9a-za-z][电子邮件保护] [0-9a-za-z] (\。[0-9a-za-z]) {0,3 } $/';$ mail 2='/^\[emailprotected]\w(\。\w ){0,3 } $/';1.3元字符:用于构造正则表达式的具有特殊含义的字符。Perl可以使用各种元字符来搜索匹配项,例如*、常见的元字符如下
1.4模式修饰符:除常规分隔符外,用于扩展常规匹配和替换的功能。
2.Perl兼容的正则表达式函数
2.1 preg _ match(字符串模式,字符串主题[,数组匹配]):用于查找和匹配字符串。参数描述:
Pattern是正则的,subject是待处理的字符串,可选匹配用于保存pattern的每个子模式的匹配结果,matches[0]保存与pattern匹配的全部内容,matches[1]保存pattern中第一个括号内的匹配内容,以此类推。
?phpheader(' content-type : text/html;charset=utf8’);$ pattern='/(http): \/\/(www)\。([^\.\/] )\.(com | net | org)/I ';$subject='我的博客:http://www . ido 321.com ';If (preg _ match ($ pattern,$ subject,$ matches)) {echo的搜索URL是:'。$与[0]匹配。br/';//数组的第一个元素保存整个匹配结果。回应“URL”中的协议为:“”。$与[1]匹配。br/';//数组的第二个元素保存第一个单词表达式echo ' URL URL中的主机是:'。$与[2]匹配。br/';//数组的第三个元素保存第二个单词表达式。回应“网址”中的域名为:“”。$匹配[3]。”br/';//数组的第四个元素保存第三个单词表达式echo URL中的“URL top”字段是:“”。$matches[4]。”br/';//数组的第5个元素保存第4个单词表达式}?结果
Preg_match_all()与Preg_match()类似,只是前者一直匹配到字符串的末尾,而后者在第一次匹配后停止匹配。
2.2 preg _ grep (string pattern,array iput):匹配数组中的元素,并返回匹配正则性的数组单位。参数描述:
模式是规则的,输入是要匹配的数组。
?php$arr=array('Linux RedHat9.0 ',' Apache2.2.9 ',' MySQL5.0.51 ',' PHP5.2.6 ',' LAMP ',' 100 ');$ version=preg_grep('/^[a-za-z](\ d | \。)$/',$ arr);//输出:数组([1]=Apache 2 . 2 . 9[2]=MySQL 5 . 0 . 51[3]=PHP 5 . 2 . 6)print _ r($ version);2.3 preg _ replace(混合模式,混合替换,混合主题[,int limit]):字符串替换。描述:
该函数在主题中搜索与模式匹配的内容,并用替换替换它。Limit用于限制匹配的数量,即替换的数量。
?php$pattern='/[\/\!]*?[^]*?/is ';$text='此文本为粗体,u带下划线/u和I斜体/I ';echo preg_replace($pattern ' ',$ text);//将所有HTML标记替换为空的echo preg _ replace ($ pattern ' ',$ text,2);//用值替换前2个HTML标记?2.4 preg _ split(字符串模式,字符串主题[,int limit [,int flags]]):拆分字符串。描述:
该函数返回一个数组。数组元素包含字符串除以主题中的边界匹配模式。极限的含义见2.3,标志的含义见文件。
?Php//将字符串$ kerwords=preg _ split ('/[\ s,]/','超文本语言,编程')拆分任意数量的空格;//输出:array ([0]=超文本[1]=语言,[2 [=编程]print _ r($ kerwords);
版权声明:php中字符串和正则表达式的详细解释是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。