----------------------------------------------------------------------------------------------------------------------------------|选择分支(或),注意使用”[]“与”|”的区别,在于”[]“只能匹配单个字符,而”|“可以匹配任意长度的字符串,例如要匹配com、edu或net就可以写作com|edu|net。(.)匹配任意一个字符,但是当.在字符类([]中的内容)的开始或结尾时就只能是.。^在[]外表示从这开始,在括号内表示不包括,例如[^1-5],该字符不是1~5之间的数字。$表示到这结束,例如"^[A-Za-z]+$"表示由26个英文字母组成的字符串 。
判断字符串”I am a good boy“中是否包含单词go,可以使用\bgo\b,确保匹配的是一个完整的单词而不是单词的一部分。在字符串”I am a good boy“中没有单词go,使用\bgo\b就会提示匹配不到,而不使用\b就会匹配到”I am a good boy“。还有与之对应的\B意思相反。
在php正则表达式中,通过\n,来表示第n次匹配到的结果。如\5代表第五次匹配到的结果。
----------------------------------------------------------------------------------------------------------------------------------
不使用正则匹配的strstr函数
strstr() 函数搜索字符串在另一字符串中的第一次出现。
注释:该函数是二进制安全的。
注释:该函数对大小写敏感。如需进行不区分大小写的搜索,请使用 stristr() 函数。
注释:返回值是从搜索到的字符串到最后
不使用正则匹配的strpos函数
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
注释:strpos() 函数对大小写敏感。(stripos不区分大小写,strrpos~最后一次~区分大小写,strripos不区分大小写)
注释:该函数是二进制安全的。
使用正则匹配的preg_math()和preg_match_all函数
preg_match() 第一次匹配成功后就会停止匹配,所以返回值为0或1。如果要实现全部结果的匹配,即搜索到结尾处,则需使用 preg_match_all() 函数。
preg_match("/php/", "php php php php php.", $matches);
print_r($matches);
preg_match_all("/php/", "php php php php php.", $matches);
print_r($matches);
对应的输出
Array ( [0] => php ) Array ( [0] => Array ( [0] => php [1] => php [2] => php [3] => php [4] => php ) )
php中贪婪匹配与惰性匹配
贪婪匹配:匹配尽可能多的字符。 比如,正则表达式中m.*n,它将匹配最长以m开始,n结尾的字符串。如果用它来搜索manmpndegenc的话,它将匹配到的字符串是manmpndegen而非man。可以这样想,当匹配到m的时候,它将从后面往前匹配字符n。懒惰匹配:匹配尽可能少的字符。 在后面添加一个”?”可将贪婪匹配转变成懒惰匹配。如m.*?n匹配到的字符串是man。
----------------------------------------------------------------------------------------------------------------------------------
最后我要吐槽一下php正则表达式对于我这种笨笨的初学者来说真的好难,读一遍头都大,而且一脸懵逼
