php则mysql 获取模式匹配值获取

php常用的正则匹配
function pregPN($test){&
&&&&&&& /**
&&&&&&&&&&& 匹配手机号码
&&&&&&&&&&& 规则:
&&&&&&&&&&&&&&& 手机号码基本格式:
&&&&&&&&&&&&&&& 前面三位为:
&&&&&&&&&&&&&&& 移动:134-139 147 150-152 157-159 182 187 188
&&&&&&&&&&&&&&& 联通:130-132 155-156 185 186
&&&&&&&&&&&&&&& 电信:133 153 180 189
&&&&&&&&&&&&&&& 后面八位为:
&&&&&&&&&&&&&&& 0-9位的数字
&&&&&&& */&
&&&&&&& $rule& = &/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A&;&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregPN($test){
&&&匹配手机号码
&&&&手机号码基本格式:
&&&&前面三位为:
&&&&移动:134-139 147 150-152 157-159 182 187 188
&&&&联通:130-132 155-156 185 186
&&&&电信:133 153 180 189
&&&&后面八位为:
&&&&0-9位的数字
&&$rule& = &/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A&;
&&preg_match($rule,$test,$result);
&&return $
function pregE($test){&
&&&&&&& /**
&&&&&&& 匹配邮箱
&&&&&&& 规则:
&&&&&&&&&&& 邮箱基本格式是& *****@**.**
&&&&&&&&&&& @以前是一个 大小写的字母或者数字开头,紧跟0到多个大小写字母或者数字或 . _ - 的字符串
&&&&&&&&&&& @之后到.之前是 1到多个大小写字母或者数字的字符串
&&&&&&&&&&& .之后是 1到多个 大小写字母或者数字或者.的字符串
&&&&&&& */&
&&&&&&& $zhengze = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';&
&&&&&&& preg_match($zhengze,$test,$result);&
&&&&&&& return $&
function pregE($test){
&&匹配邮箱
&&&邮箱基本格式是& *****@**.**
&&&@以前是一个 大小写的字母或者数字开头,紧跟0到多个大小写字母或者数字或 . _ - 的字符串
&&&@之后到.之前是 1到多个大小写字母或者数字的字符串
&&&.之后是 1到多个 大小写字母或者数字或者.的字符串
&&$zhengze = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';
&&preg_match($zhengze,$test,$result);
&&return $
function pregTP($test){&
&&& 电话号码匹配
&&& 电话号码规则:
&&&&&&& 区号:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括号内也可以没有
&&&&&&& 如果有区号由括号包裹,则在区号和号码之间可以有0到1个空格,如果区号没有由括号包裹,则区号和号码之间可以有两位长度的 或者-
&&&&&&& 号码:7到8位的数字
&&&&&&& 例如:(010) & 或者 (010) 或者 010&
或者 010--&
&&& $rule = '/^(\(((010)|(021)|(0\d{3,4}))\)( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';&
&&& preg_match($rule,$test,$result);&
&&& return $&
&function pregTP($test){
&&电话号码匹配
&&电话号码规则:
&&&区号:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括号内也可以没有
&&&如果有区号由括号包裹,则在区号和号码之间可以有0到1个空格,如果区号没有由括号包裹,则区号和号码之间可以有两位长度的 或者-
&&&号码:7到8位的数字
&&&例如:(010) & 或者 (010) 或者 010&
或者 010--
&&$rule = '/^(\(((010)|(021)|(0\d{3,4}))\)( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
&&preg_match($rule,$test,$result);
&&return $
function pregURL($test){&
&&&&&&& /**
&&&&&&&&&&& 匹配url
&&&&&&&&&&& url规则:
&&&&&&&&&&&&&&& 例
&&&&&&&&&&&&&&& 协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名
&&&&&&&&&&&&&&& /question/.
&&&&&&&&&&&&&&& 协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名?参数
&&&&&&&&&&&&&&& .cn/portal.php?mod=view&aid=7412
&&&&&&&&&&&&&&& 协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名/参数
&&&&&&&&&&&&&&& .cn/yiji/erji/index.php/canshu/11
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& 协议:可有可无,由大小写字母组成;不写协议则不应存在://,否则必须存在://
&&&&&&&&&&&&&&& 域名:必须存在,由大小写字母组成
&&&&&&&&&&&&&&& 名称:必须存在,字母数字汉字
&&&&&&&&&&&&&&& 后缀:必须存在,大小写字母和.组成
&&&&&&&&&&&&&&& 文件路径:可有可无,由大小写字母和数字组成
&&&&&&&&&&&&&&& 文件名:可有可无,由大小写字母和数字组成
&&&&&&&&&&&&&&& 参数:可有可无,存在则必须由?开头,即存在?开头就必须有相应的参数信息
&&&&&&& */&
&&&&&&& $rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregURL($test){
&&&匹配url
&&&url规则:
&&&&协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名
&&&&/question/.html
&&&&协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名?参数
&&&&.cn/portal.php?mod=view&aid=7412
&&&&协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名/参数
&&&&.cn/yiji/erji/index.php/canshu/11
&&&&协议:可有可无,由大小写字母组成;不写协议则不应存在://,否则必须存在://
&&&&域名:必须存在,由大小写字母组成
&&&&名称:必须存在,字母数字汉字
&&&&后缀:必须存在,大小写字母和.组成
&&&&文件路径:可有可无,由大小写字母和数字组成
&&&&文件名:可有可无,由大小写字母和数字组成
&&&&参数:可有可无,存在则必须由?开头,即存在?开头就必须有相应的参数信息
&&$rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';
&&preg_match($rule,$test,$result);
&&return $
function pregIC($test){&
&&&&&&& /**
&&&&&&& 匹配身份证号
&&&&&&& 规则:
&&&&&&&&&&& 15位纯数字或者18位纯数字或者17位数字加一位x
&&&&&&& */&
&&&&&&& $rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';&&&&&&&&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregIC($test){
&&匹配身份证号
&&&15位纯数字或者18位纯数字或者17位数字加一位x
&&$rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';&&
&&preg_match($rule,$test,$result);
&&return $
function pregPOS($test){&
&&&&&&& 匹配邮编
&&&&&&&&&&& 规则:六位数字,第一位不能为0
&&&&&&& $rule ='/^[1-9]\d{5}$/';&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregPOS($test){
&&匹配邮编
&&&规则:六位数字,第一位不能为0
&&$rule ='/^[1-9]\d{5}$/';
&&preg_match($rule,$test,$result);
&&return $
function pregIP($test){&
&&&&&&& /**
&&&&&&& 匹配ip
&&&&&&& 规则:
&&&&&&&&&&& **1.**2.**3.**4
&&&&&&&&&&& **1可以是一位的 1-9,两位的01-99,三位的001-255
&&&&&&&&&&& **2和**3可以是一位的0-9,两位的00-99,三位的000-255
&&&&&&&&&&& **4可以是一位的 1-9,两位的01-99,三位的001-255
&&&&&&&&&&& 四个参数必须存在
&&&&&&& */&
&&&&&&& $rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))))\.)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5])))\.){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregIP($test){
&&&**1.**2.**3.**4
&&&**1可以是一位的 1-9,两位的01-99,三位的001-255
&&&**2和**3可以是一位的0-9,两位的00-99,三位的000-255
&&&**4可以是一位的 1-9,两位的01-99,三位的001-255
&&&四个参数必须存在
&&$rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))))\.)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5])))\.){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';
&&preg_match($rule,$test,$result);
&&return $
function pregTI($test){&
&&&&&&& /**
&&&&&&& 匹配时间
&&&&&&&&&&& 规则:
&&&&&&&&&&&&&&& 形式可以为:
&&&&&&&&&&&&&&& 年-月-日 小时:分钟:秒
&&&&&&&&&&&&&&& 年-月-日 小时:分钟
&&&&&&&&&&&&&&& 年-月-日
&&&&&&&&&&&&&&& 年:1或2开头的四位数
&&&&&&&&&&&&&&& 月:1位1到9的数;0或1开头的两位数,0开头的时候个位数是1到9的数,1开头的时候个位数是1到2的数
&&&&&&&&&&&&&&& 日:1位1到9的数;0或1或2或3开头的两位数,0开头的时候个位数是1到9的数,1或2开头的时候个位数是0到9的数,3开头的时候个位数是0或1
&&&&&&&&&&&&&&& 小时:0到9的一位数;0或1开头的两位数,个位是0到9;2开头的两位数,个位是0-3
&&&&&&&&&&&&&&& 分钟:0到9的一位数;0到5开头的两位数,个位是0到9;
&&&&&&&&&&&&&&& 分钟:0到9的一位数;0到5开头的两位数,各位是0到9
&&&&&&& */&
&&&&&&& $rule ='/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';&
&&&&&&& preg_match($rule,$test,$result);&
&&&&&&& return $&
function pregTI($test){
&&匹配时间
&&&&形式可以为:
&&&&年-月-日 小时:分钟:秒
&&&&年-月-日 小时:分钟
&&&&年-月-日
&&&&年:1或2开头的四位数
&&&&月:1位1到9的数;0或1开头的两位数,0开头的时候个位数是1到9的数,1开头的时候个位数是1到2的数
&&&&日:1位1到9的数;0或1或2或3开头的两位数,0开头的时候个位数是1到9的数,1或2开头的时候个位数是0到9的数,3开头的时候个位数是0或1
&&&&小时:0到9的一位数;0或1开头的两位数,个位是0到9;2开头的两位数,个位是0-3
&&&&分钟:0到9的一位数;0到5开头的两位数,个位是0到9;
&&&&分钟:0到9的一位数;0到5开头的两位数,各位是0到9
&&$rule ='/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';
&&preg_match($rule,$test,$result);
&&return $
function pregCh($test){&
//utf8下匹配中文&&
&&& $rule ='/([\x{4e00}-\x{9fa5}]){1}/u';&
&&& preg_match_all($rule,$test,$result);&
&&& return $&
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'扫描二维码: 已优化适合手机访问
&&★ 相关文章php 正则匹配问题,获取匹配后的内容_百度知道
php 正则匹配问题,获取匹配后的内容
&/&&S]*)&//&&/Cnt-Main-Article-QQ\&S]*)&div class=&#92.com/a/038;([\&S]*)&div&
var_dump($content_a),$content_a),但是包含了广告等;;s\&s\&quot:/\
preg_match_all(&&div id=\时;\Cnt-Main-Article-QQ\div&gt在做一个采集测试时;&&lt:///&quot://Cnt-Main-Article-QQ\&div class=\&&ft\&&gt?&div id=\&当正则表达式为/s&#92,可以匹配处内容,但是正则不出来对应的文章内容正则表达式;);&/div&&&gt,$content_&&quot.ft\;div id=\&&\上面是获取腾讯的一片文章;div class=\;div&&lt.com/a/038?
$content_all = file_get_contents(&quot,出现了个问题&([\\&#92
提问者采纳
你要把他们都过滤掉的;div&&#92你第二个匹配的也不是你想要的那个匹配把;和&\/以及其他标签之间可能有空格,回车换行之类的东西;&#47。因为&lt,制表符;div&gt
提问者评价
来自团队:
其他类似问题
为您推荐:
php的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&&&&正则表达式是中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!&&现在开始来学习正则表达式的基本语法:1.&/&是定界符,&&定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即&&,&&&,以及&&&。(1)&&元字符规定其前导字符必须在目标对象中连续出现一次或多次比如:/php+/,能够与&&匹配,即字母后面连续出现一个或多个字母的字符串相匹配。(2)&&元字符规定其前导字符必须在目标对象中出现零次或连续多次比如:能够与&&相匹配,即后面可以有个或多个(3)&&元字符规定其前导对象必须在目标对象中连续出现零次或一次。比如:/php?/能够&&匹配,即后面可以有个或者个其他重要的元字符:\s:用于匹配单个空格符,包括键和换行符;\S:用于匹配除单个空格符之外的所有字符;\d:用于匹配从到的数字;\w:用于匹配字母,数字或下划线字符;\W:用于匹配所有与不匹配的字符;.&:用于匹配除换行符之外的所有字符。示例:用于匹配目标对象中的一个或多个空格字符2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有&&&&&&&以及&&&(1)&&定位符规定匹配模式必须出现在目标字符串的开头(2)&&定位符规定匹配模式必须出现在目标对象的结尾(3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一(4)&&定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内3.php的正则匹配模式非常灵活,可以指定某一范围&例如:/[A-Z]/上述正则表达式将会与从到范围内任何一个大写字母相匹配。/[a-z]/上述正则表达式将会与从到范围内任何一个小写字母相匹配。/[0-9]/上述正则表达式将会与从到范围内任何一个数字相匹配。/([a-z][A-Z][0-9])+/上述正则表达式将会与任何由字母和数字组成的字符串4.可以同时与多种模式选择匹配如可以与&&&&&&&&相匹配5.否定符&&&规定目标对象中不能存在模式中所规定的字符串例如匹配除了字符外的所有东西下面来讲讲正则表达式常用函数吧!(非常重要)&?php
//preg_match("正则表达式","字符串")用于在字符串中查找匹配项
$email = "";
if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
echo '匹配成功&hr /&';
echo '匹配失败&hr /&';
//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\
$str = "php点点通是一个学习php的网站,(⊙o⊙)&";
echo preg_quote($str);
echo "&hr /&";
//preg_split("正则","字符串")分割字符串
$php = "+php++点点通++++是好网站";
$field = preg_split("/\+{1,}/",$php);
foreach($field as $f){
echo $f." ";
echo "&hr /&";
//preg_grep("正则","字符串") 与数组匹配后返回新数组
$phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
$item = preg_grep("/^php/",$phpddt);
print_r($item);
echo "&hr /&";
//preg_replace("正则","替换内容","原字符串")
很重要,很常用
$a = "欢迎光临/";
//给http开头的加上超链接
echo preg_replace("/http:\/\/(.*)\//","&a href=\"\${0}\"&\${0}&/a&","$a");
?&运行结果如下:&转载请说明,本来来自 ,谢谢
关注微信公众平台当前位置:&>&&>&&>&
PHP正则匹配获取URL中域名的代码
发布时间:编辑:
用php的正则表达式来获取URL中的域名,举了两个小例子,简单而实用,有需要的朋友,快来看看吧。
URL 一个通用资源标志符(Uniform Resource Identifier, 简称&URI&)进行定位。
对象分组:
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?
12&&&&&&&&&&& 3& 4&&&&&&&&& 5&&&&&& 6& 7&&&&&&& 8 9
$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~i';
$url = '/pub/ietf/uri/#Gonn';
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf(&&p&输出URL数据为:&/p&&pre&%s&/pre&\n&,var_export( $rr ,TRUE));
各分组如下
$1 = http:
$5 = /pub/ietf/uri/
$6 = &undefined&
$7 = &undefined&
$8 = #Gonn
以上的可以获取URL中的任何一部分。
下面这段代码更简洁,易懂一些。
// 从 URL 中取得主机名
preg_match(&/^(http://)?([^/]+)/i&, &/index.html&, $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match(&/[^./]+.[^./]+$/&, $host, $matches);
echo &domain name is: {$matches[0]}n&;
您可能感兴趣的文章:
与 PHP正则匹配获取URL中域名的代码 有关的文章
本文标题:
本页链接:
12345678910
12345678910

我要回帖

更多关于 php正则匹配规则 的文章

 

随机推荐