Head First PHP & MySQL读书笔记 持续更新...
后台-插件-广告管理-内容页头部广告(手机) |
- PHP有一个strlen()函数,它会告诉你一个串中有多少个字符。
- 以下是一个正则表达式,要查找一行中的10位数字。 /^\d\d\d\d\d\d\d\d\d\d$/
^表示从串的开始处开始匹配。\d代表数字,串中的第一个字符必须是一个数字。总共有10个数字。美元符表示串必须结束。
-
还可以采用一种更简洁的方法重写这个正则表达式,这里要用到大括号。大括号用于指示重复:
/^\d{10}$/这与上面的模式表示同样的含义。{10}是表示10个数字的一种简写形式。
-
正则表达式是一些规则,用于匹配一个或多个串中的模式。
-
利用元字符可以在正则表达式中描述文本模式。
\d 这个元字符要查找一个数字。这会匹配0到9之间的任何数字,\d本身只匹配一位数字,所以如果希望匹配一个两位数,则要使用\d\d或\d{2}。 \w 查找任何字母数字字符。可以是一个字母或者一个数字。它会匹配以下范围内的任意一个字符,包括a-z和A-Z(大写和小写字母),以及0-9(类似于\d)。 \s 查找空白符。这不只是按下空格键在屏幕上显示的空格字符;\s还能匹配制表符、换行或回车符。同样地,要记住\s一次只匹配一个这样的字符。如果希望匹配一行中的两个空格字符,则需要使用\s\s或\s{2}。 ^ 它会查找一个串的开始位置,所以可以用它指示必须从一个文本串的起始位置开始匹配,而不是串中的任何其他位置。例如,正则表达式/^\d{3}/能匹配串“300applications但不能匹配“Wereceived300 applications" . 点元字符可以匹配除换行符以外的任意一个字符。它能匹配字母或数字(类似于\w),还可以匹配空格或制表符(类似于\s) $ 查找串尾。可以结合^使用这个$元字符确定匹配的范围,指定匹配究竟从哪里开始到哪里结束。例如,/^\w{5}\s\d{3}$/能匹配“Nanny411”但不能匹配“Nanny 411is great”或“Call Nanny411”。 -
量词指定了一个元字符应当出现多少次。
{min,max} 如果大括号里有两个数字,并用一个逗号分隔,这指示了前面的字符或元字符重复次数的范围。{2,4}就是要求应当在一行中出现2、3或4次。 + 前面的字符或元字符必须重复1次或多次。 * 字符或元字符可以出现1次或多次,或者根本不出现。 ? 前面的字符或元字符必须出现1次或者根本不出现。 -
字符类是一组匹配单个字符的规则。利用字符类,可以匹配一个特定值集合中的字符。可以使用字符类查找一个数字范围,还可以查找一个值集合。例如:[0-2] 这与一个数字范围匹配,它会匹配0、1或2。[A-D] 这会匹配A,B,C或D。[^b-f] 在字符类中使用^时有一个特殊的含义,这个^表示“匹配除……以外的所有字符”,这会匹配除b,c,d,e或f以外的所有字符。
-
字符类[m-zM-Z]将匹配字母表后半部分中的任何字母,包括大写和小写。字符类中指定的字符或范围之间不需要加空格或逗号。
-
如果希望一个量词应用到连续的一组字符(但这些字符不在一个字符类中),可以用小括号包围这些字符,指示它们应当归为一组。举例来说,正则表达式/(hello)+/将匹配文本串中一个或多个连续的单词“hello”。
-
可以在正则表达式中使用竖线字符(|)来指示一组选项,可以从中选择。所以,正则表达式/(ketchup|catsup|catchup)/将匹配这3个单词中的任意一个。
-
如果希望在正则表达式中使用保留字符,需要对它们转义。
在正则表达式语法中,有为数不多的一组指定了特殊含义的字符,因为它们用来指示元字符、量词和字符类。这包括点号(.)、问号(?)、加号(+)开始中括号([),开始和结束小括号、补字号(^)、美元符($)、竖线字符(|)、反斜线(\)、前斜线(/)和星号(*)。
如果希望在正则表达式中使用这些字符来表示它们的原义,而不是作为它们通常表示的元字符或量词,需要在前面加一个反斜线对它们“转义”。 -
用preg_match()检查模式。这个函数取一个正则表达式模式和一个文本串。如果没有匹配,函数会返回false,如果匹配,则返回true。
- preg_match($regex,$my_string);
- //$regex为一个正则表达式。函数希望收到一个串,这说明正则表达式应当用单引号包围。
- //$my_string是要检查的串(查看是否存在匹配)。
-
preg_replace()函数在使用正则表达式完成模式匹配方面比preg_match()函数更进一步。除了确定一个给定模式是否与一个给定文本串匹配外,它还允许提供一个替换模式取代串中的匹配文本。
- preg_replace($pattern,$replacement,$my_string)
- //$pattern:需要查找这些不想要的字符。
- //$replacement:找到一个不想要的字符时,希望把它替换为这个模式。
- //$my_string:要完成查找一替换的串。
- $new_year = preg_replace('/200[0-9]/','2010','The year is 2009.');
- //每次在串中找到一个2000~2009的年份时,会替换为2010.
-
PHP提供了checkdnsrr()函数来检查一个域是否合法。
- checkdnsrr('headfirstlabs.com')
- //checkdnsrr()接收一个包含域名的串,这是@符号后面的所有内容。
- //如果这是一个真实的域则返回1,否则返回0。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |