![]() |
Php正则表达式及实例
对于开发人员来说,正则表达式是一个非常有用的功能。它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。在这篇文章里,我已经编写了15个贼拉有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包。
开始使用正则表达式 对初学者来说,正则 看起来很难学习和使用。事实上他们并非你想想的那么难,在我们深入掌握正则之前,先迅速看看这些入门基础: 正则表达式语法 正则表达式 将会匹配 Code:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。1、非负整数:”^\d+$” 2、正整数:”^[0-9]*[1-9][0-9]*$” 3、非正整数:”^((-\d+)|(0+))$” 4、负整数:”^-[0-9]*[1-9][0-9]*$” 5、整数:”^-?\d+$” 6、非负浮点数:”^\d+(\.\d+)?$” 7、正浮点数:”^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” 8、非正浮点数:”^((-\d+\.\d+)?)|(0+(\.0+)?))$” 9、负浮点数:”^(-((正浮点数正则式)))$” 10、英文字符串:”^[A-Za-z]+$” 11、英文大写串:”^[A-Z]+$” 12、英文小写串:”^[a-z]+$” 13、英文字符数字串:”^[A-Za-z0-9]+$” 14、英数字加下划线串:”^\w+$” 15、E-mail地址:”^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$” 16、URL:”^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$” php 正则表达式的方法 方法描述: Code:
preg_match() 该函数preg_match按照模式去匹配字符串,如果符合则返回TRUE,否则返回FALSE |
验证域名
检验一个字符串是否是个有效域名. Code:
$url = "http://komunitasweb.com/";这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果 Code:
$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex orCode:
echo $title;如果你曾经希望去获得某个网页上的全部图片,这段代码就是你需要的,你可以轻松的建立一个图片下载机器人 Code:
$images = array();经常重复输入字母? 这个表达式正适合. Code:
$text = preg_replace("/s(w+s)1/i", "$1", $text);功能同上,但只是面对标点,白白重复的逗号 Code:
$text = preg_replace("/.+/i", ".", $text); |
匹配一个XML或者HTML标签
这个简单的函数有两个参数:第一个是你要匹配的标签,第二个是包含XML或HTML的变量,再强调下,这个真的很强大 Code:
function get_tag( $tag, $xml ) {这个功能和上面的非常相似,但是它允许你匹配的标签内部有属性值,例如你可以轻松匹配 <div id=”header”> Code:
function get_tag( $attr, $value, $xml, $tag=null ) {匹配十六进制颜色值 web开发者的另一个有趣的工具,它允许你匹配和验证十六进制颜色值. Code:
$string = "#555555";这段代码方便查找和打印 网页 <title> 和</title> 之间的内容 Code:
$fp = fopen("http://www.catswhocode.com/blog","r");这个正则表达式将检测输入的内容是否包含6个或更多字母,数字,下划线和连字符. 输入必须包含至少一个大写字母,一个小写字母和一个数字 Code:
'A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z' |
WordPress: 使用正则获得 帖子上的图片
我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些从帖子的内容检索下来的图像代码。使用这个代码在你的BLOG只需要复制下面代码到你的某个文件里 Code:
<?php if (have_posts()) : ?>被WordPress使用的另一个方法, 这段代码可使你把图像自动更换一个笑脸符号 Code:
$texte='A text with a smiley ';Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />表单验证匹配 验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z A-Z]$ 验证账号,不能有空格,不能非数字:^\d+$ 验证用户密码,以字母开头,长度在 6-18 之间:^[a-zA-Z]\w{5,17}$ 验证是否含有 ^%&',;=?$\ 等字符:[^%&',;=?$\x22]+ 匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配腾讯QQ号:[1-9][0-9]{4,} 匹配日期,只能是 2004-10-22 格式:^\d{4}\-\d{1,2}-\d{1,2}$ 匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7,8}$ 评注:匹配形式如 010-12345678 或 0571-12345678 或 0831-1234567 匹配中国邮政编码:^[1-9]\d{5}(?!\d)$ 匹配身份证:\d{14}(\d{4}|(\d{3}[xX])|\d{1}) 评注:中国的身份证为 15 位或 18 位 不能为空且二十字节以上:^[\s|\S]{20,}$ 字符匹配 匹配由 26 个英文字母组成的字符串:^[A-Za-z]+$ 匹配由 26 个大写英文字母组成的字符串:^[A-Z]+$ 匹配由 26 个小写英文字母组成的字符串:^[a-z]+$ 匹配由数字和 26 个英文字母组成的字符串:^[A-Za-z0-9]+$ 匹配由数字、26个英文字母或者下划线组成的字符串:^\w+$ 匹配空行:\n[\s| ]*\r 匹配任何内容:[\s\S]* 匹配中文字符:[\x80-\xff]+ 或者 [\xa1-\xff]+ 只能输入汉字:^[\x80-\xff],{0,}$ 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配数字 只能输入数字:^[0-9]*$ 只能输入n位的数字:^\d{n}$ 只能输入至少n位数字:^\d{n,}$ 只能输入m-n位的数字:^\d{m,n}$ 匹配正整数:^[1-9]\d*$ 匹配负整数:^-[1-9]\d*$ 匹配整数:^-?[1-9]\d*$ 匹配非负整数(正整数 + 0):^[1-9]\d*|0$ 匹配非正整数(负整数 + 0):^-[1-9]\d*|0$ 匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 匹配负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 匹配非负浮点数(正浮点数 + 0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 匹配非正浮点数(负浮点数 + 0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 其他 匹配HTML标记的正则表达式(无法匹配嵌套标签):<(\S*?)[^>]*>.*?</\1>|<.*? /> 匹配网址 URL :[a-zA-z]+://[^\s]* 匹配 IP 地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?) 匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? 提示 1.上述正则表达式通常都加了 ^ 与 $ 来限定字符的起始和结束,如果需要匹配的内容包括在字符串当中,可能需要考虑去掉 ^ 和 $ 限定符。 2.以上正则表达式仅供参考,使用时请检验后再使用 |
| All times are GMT +8. The time now is 04:05 AM. |
Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.