正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 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)$ //匹配浮点数
^[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)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
分享到:
相关推荐
正则表达式在Ruby on Rails中用于模式匹配和文本处理,以下是一些常用的正则表达式符号: - `^`: 表示字符串的开始。 - `$`: 表示字符串的结束。 - `.`: 匹配任何单个字符。 - `(a|b)`: 表示a或b。 - `()`: 表示一个...
正则表达式在Ruby中是非常强大的工具,可以用来匹配文本模式。例如,检查一个字符串是否以特定的字符结尾: ```ruby text = "Hello, world!" if text =~ /world!$/ puts "Text ends with 'world!'." end ``` 这里...
2. **pcre-6.6.tar.gz**: PCRE(Perl Compatible Regular Expressions)是Perl兼容的正则表达式库,为编程语言提供强大的文本匹配功能。Ruby在处理字符串和正则表达式时会用到这个库。 3. **lighttpd-1.4.11.tar.gz...
RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为必不可少的环节。在本文中,我们将探讨一些RoR性能优化的关键方面,主要基于JavaEye网站在...
CIFAR-10和CIFAR-100是常用的图像识别数据集,由100,000张32x32像素的彩色图片组成,分为训练集和测试集。CIFAR-10包含10个类别,每个类别有6,000张图片;而CIFAR-100则有100个类别,每类有600张图片。这两个数据集...
2. **控制结构**:Ruby提供了if语句、case语句、循环(如for、while、until)以及条件表达式,用于控制程序流程。 3. **方法和块**:Ruby中的方法定义简单,可以接受参数,并通过return语句返回值。块是Ruby的一个...
【Perl】语言由于Perl 6的开发进度缓慢,面临困境,其在文本处理的优势因其他语言对正则表达式的支持和XML的广泛使用而减弱。 【Ruby】语言及RoR的崛起是一个显著的趋势,Ruby 2.0的发布和RoR 2.0的推出预示着其在...
5. **内置正则表达式**:Ruby内置了强大的正则表达式引擎,可以轻松处理文本匹配和替换操作。 6. **迭代器和块(Block)** - **迭代器循环**:可以使用`downto`、`each`等方法进行循环遍历。 - **块(Block)**:Ruby...
Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...
2. 丰富的标准库:Ruby拥有丰富的标准类型库,包括数字、字符串、数组、哈希、范围和正则表达式等。 3. 块和迭代器:Ruby提供了强大的迭代器和块的概念,使得对集合的处理变得简洁而强大。 4. 语法简洁:Ruby的语法...
在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-Controller(MVC)架构模式,旨在提高开发效率并提供简洁、优雅的代码结构。"ror实例"可能指的是在学习或实践中,通过创建...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
**初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat ...
4. **Perl**:Perl 6的发展滞后于.NET,Perl的优势(如文本处理)因正则表达式普及和XML的广泛应用而减弱。 5. **Ruby**:Ruby的势头强劲,Ruby 2.0和RoR 2.0的发布使其声势大增,可能超越Perl,仅与Python和PHP...
与其他语言相比,如Perl的正则表达式密集型语法和Lisp的抽象语法树,Python的代码更易于理解和维护。对于初学者而言,Python是理想的入门语言,因为它的语法清晰,概念直观。 尽管Python在性能上可能不及C++或Java...
- **ActiveSupport库**:解析ActiveSupport库提供的常用工具和辅助方法,提升开发效率。 - **Rails 2.0新特性**:概述Rails 2.0版本新增的重要功能和改进点。 - **部署、安全性和性能优化**:讨论应用的部署流程...
FreeMIS是一个基于Ruby on Rails(RoR)框架构建的管理信息系统(MIS)。RoR是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则,强调简洁和生产力。RoR使用...