热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

正则表达式的基本方法

通常上,正则表达式会用到以下的几个"符号":^-代表字串前面一定要有这样的字,如^http://,代表前面一定要有http://$-代表字串后面一定要有这样的字.?(一个问号)-它代表一个或没有字元...SyntaxHighlighter.all();
通常上, 正则表达式会用到以下的几个"符号":  
^ - 代表字串前面一定要有这样的字, 如^http://, 代表前面一定要有http://  
$ - 代表字串后面一定要有这样的字.  
? (一个问号) - 它代表一个或没有字元  
* (一个*) - 它代表没有或者更多前面的字元  
. (一个句点) - 它代表任何一个字元  
+ (一个加) - 它代表至少一个或更多前面的字元  
[xyz] - 它代表任何一个字元, 或x, 或y, 或z  
[a-z] - 它代表任何一个字元, 由a至z  
[[:alnum:]] - 代表由a至z, 0至9  
[[:digit:]] - 代表由0至9  
 
当使用正则表达式时, 必需注意ereg及eregi可大大不同喔~  
ereg是非常敏感的 (意即大小字母都分得非常清楚), 而eregi则不是 (只要记着i代表case-insensitive就可以了)  
 
这里举一些例子:  
 
$regexp = eregi("a?c", "abc"); //-- 这是对的, 因?可以代表"一个"或没有字元  
$regexp = eregi("a?c", "ac"); //-- 这也是对的, 因?可以代表一个或"没有"字元  
$regexp = eregi("a?c", "a"); //-- 这样就不对了, 纵使有a, 可是还是要有c  
 
$regexp = eregi("[abc]", "a"); //-- 这是对的, 因a是大括号里的其中一个字元  
$regexp = eregi("[a-z]", "c"); //-- 这是对的, 因c包括在a至z里  
$regexp = eregi("[a-z]", "0"); //-- 这是不对的, 因0并不包括在a至z里面  
 
$regexp = eregi("a.c", "abc"); //-- 这是对的, 因一个.代表"任何"一个字  
$regexp = eregi("a.c", "ac"); //-- 这可就不对了, 因.代表"一个"字元, 所以放abbc也是不对的  
 
$regexp = eregi("a+c", "aaaac"); //-- 这是对的, 因+代表一人或"更多"前面的字元  
$regexp = eregi("a+c", "abbc"); //-- 这样是不对的, +代表一个或更多"前面的字元", 而不是代表任何一个字元  
$regexp = eregi("a+c", "abc"); //-- 这样也是不对的, 注释如上  
 
$regexp = eregi("[^abc]", "a"); //-- 这是比较不同的一点, 那就是如果^出现在[]里面, 代表"除"了里面的字, 全部都是对的.  
$regexp = eregi("[^abc]", "d"); //-- 这是对的, 因d并不在abc里面  
$regexp = eregi("[^[:alnum:]]", "9"); //--这是对的, 因~并不包括在a至z, 0至9里面  
当然, [[:digit:]]用法也是相同:  
$regexp = eregi("[^[:digit:]]", "a"); //-- 这是对的, 因a并不包括在0至9里面  
 
最后, 举个有用的例子,  
比如说, 我要每个人的密码都不准拥有0至9, 可以这样试验:  
$regexp = eregi("^[^0-9]+$", "aaa9"); //--把aaa9当做密码  
if ($regexp == "") {  
echo "密码拥有号码, 请改过";  
} else {  
echo "密码没有号码, 通过";  
}  
 
测验显示, 密码拥有号码, 请改过.  
相信每个人都看到, [^0-9]前后各有^及$, 这是为了确保前后不能拥有号码, 而+则确保中间没有任何的号码,  
[]里面的^, 则是"除了0至9之外, 其他一律通过"  
所以只要将9拿去, 就会显示"密码没有号码, 通过"了 ! 

推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文基于对相关论文和开源代码的研究,详细介绍了LOAM(激光雷达里程计与建图)的工作原理,并对其关键技术进行了分析。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
author-avatar
1042613658_047ede
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有