网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月27日漏签0天
奕帆吧 关注:71贴子:1,468
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回奕帆吧
>0< 加载中...

【php学习】正则表达式

  • 只看楼主
  • 收藏

  • 回复
  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
正则表达式Regular Expression描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串,将匹配的子串做替换或者从某个串中取出符合某个条件的子串等.


  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。
--------------------------
/^hell/ 
  因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。 
  /ar$/ 
  因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 
  /\bbom/ 
  因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。 
  /man\b/ 
  因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。


2025-06-27 02:37:44
广告
  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
 为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如: 
  /[A-Z]/ 
  上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。 
  /[a-z]/ 
  上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。 
  /[0-9]/ 
  上述正则表达式将会与从0到9范围内任何一个数字相匹配。 
  /([a-z][A-Z][0-9])+/ 
  上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。 
  如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 “|”。例如: 
  /to|too|2/ 
  上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。 
  正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。例如: 
  /[^A-C]/ 
  上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。


  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如: 
  /Th\*/ 
  上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>email合法性检测</title>
<script>

     <!-- start hiding 
     function verifyAddress(obj) 
     { 
      var email = obj.email.value; 
      var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
      flag = pattern.test(email); 
      if(flag) 
      { 
       alert(”Your email address is correct!”); 
       return true; 
      } 
      else 
       { 
        alert(”Please try again!”); 
        return false; 
        } 
      } 
     // stop hiding --> 
    </script> 
   </head> 
   <body> 
   <form onSubmit="return verifyAddress(this);"> 
   <input name="email" type=text> 
   <input type=submit name="subm" value="提交"> 
   </form> 
  </body> 
 </html>


  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上面讲述的正则表达式的语法是所有正则表达式通用的基本语法.
 php自身提供了一些使用正则表达式的函数.php有两套函数,用来处理两种类型的正则表达式Perl5兼容模式和Posix兼容标准模式.
 php处理Posix标准兼容模式正则表达式的函数有6个,它们都把一个正则表达式作为它们的第一个参数,列出如下:
 ereg:最常用的正则表达式函数,ereg允许我们搜索跟一个正则表达式匹配的一个字符串.
 ereg_replace:允许我们搜索跟正则表达式匹配的一个字符串,并用新的字符串代替所有这个表达式出现的地方.
 eregi:和ereg几乎是相同的效果,不过忽略大小写.
 eregi_replace:和ereg_replace有着一样的搜索-替换功能,不过忽略大小写
 split:允许我们搜索和正则表达式匹配的字符串,并且以字符串集合的方式返回匹配的结果.
 spliti:split函数忽略大小写的版本.
----------------------
ereg("abc",$string);如果在$string中任何地方找到"abc"则返回&true
ereg("^abc",$string);如果$string以"abc"开头则返回&true
ereg("^abc$",$string);如果$string以"abc"结尾则返回&true
ereg("^[a-z]+$","johndoe");如果从第一个到最后一个都是小写字母则返回true
ereg("^[A-Z]+$","JOHNDOE");如果从第一个到最后一个都是大写字母则返回true
eregi("(ozilla.[23]|MSIE.3)",$HTTP_USER_AGENT);如果用户浏览器是Ntscape 2,3或MSIE 3则返回&true
ereg("([[:alnum:]]+)([[:alnum:]]+)([[:alnum:]]+)",$string,$regs);将三个空格分隔的单词放入$regs[1],$regs[2]和$regs[3]中
$string=ereg_replace("^","<br>",$string);将<br>标记放到$string开头
$string=ereg_replace("$","<br>",$string);将<br>标记放到$string结尾
$string=ereg_replace("\n","",$string);删除$string中所有换行符


  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>正则表达式</title></head>
<body>
<a herf="./">返回列表</a>
<form action="<? echo $PHP_SELF; ?>" method="post">
请输入MM/DD/YYYY格式的日期:
<input type="text" name="date" value="<? echo $date; ?>">
<input type="submit" value="转换为YYYY-MM-DD格式">
</form>
<?
if(isset($date)){
if(ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})",$date,$regs)){
echo $regs[0]."的转换结果为:".$regs[3]."-".$regs[1]."-".$regs[2];
}
else{
echo"$date的日期格式不对!<br>";
}
}
?>
</body>
</html>


  • 啾啾鸣虫
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
<?php
if(ereg("^([a-zA-z0-9_-])+@([a-zA-z0-9_-])+(\.[a-zA-z0-9_-])+",$E-mail))
{
echo "Your Email address is correct!";
}
else
{
echo"Please try again!";
}
?>


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回奕帆吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示