`
fireflyman
  • 浏览: 118409 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

常用正則表達式(從其它地方找來的...我只是保存而已)

    博客分类:
  • ROR
阅读更多
原文鏈接: 
http://www.weekface.info/2010/04/02/ruby-regexp-examples

#1.用戶名注冊
/^[a-z0-9_-]{3,16}$/
#以字母開頭,包含字母,數字,_,-的3-16個字符

#2.用戶密碼
/^[a-z0-9_-]{6,18}$/
#同上

#3.十六進制數
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
#以#开头或者不以#开头, 后面跟 6个字符(a-f或者0-9) 或者 3个字符(a-f或者0-9)

#4.匹配一個Slug(啥叫Slug?看看上面地址栏里的那一陀)
/^[a-z0-9-]+$/
#多個字母(a-z),數字(0-9),和-組成的字符

#5.匹配Email地址,此乃神器也
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

#6.匹配Url
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

#7.匹配IP地址
num = /\d|[01]?\d\d|2[0-4]\d|25[0-5]/  
exp = /^(#{num}\.){3}#{num}$/

#num是每个数字串的匹配模式, exp就是最终的RegExp了,下面是演示:

irb(main):001:0> num = /\d|[01]?\d\d|2[0-4]\d|25[0-5]/
=> /\d|[01]?\d\d|2[0-4]\d|25[0-5]/
irb(main):002:0> exp = /^(#{num}\.){3}#{num}$/
=> /^((?-mix:\d|[01]?\d\d|2[0-4]\d|25[0-5])\.){3}(?-mix:\d|[01]?\d\d|2[0-4]\d|25[0-5])$/
irb(main):003:0> exp.match("192.168.1.22")
=> #<MatchData "192.168.1.22" 1:"1.">

#8.匹配时间/日期类型(yyyy.mm.dd hh:mm:ss)
yyyy = /[1-9]\d\d\d/  
mm = /0?[1-9]|1[12]/  
dd = /0?[1-9]|[12]\d|3[01]/  
hh = /[01]?[1-9]|2[0-4]/  
MM = /[0-5]\d/  
ss = /[0-5]\d/  
date_time = /^(#{yyyy}\.#{mm}\.#{dd}) (#{hh}:#{MM}:#{ss})$/  

date_time =~ '2008.8.27 22:12:10'  # 0  
date_time =~ '2008.8.27 22:12:60'  # nil  

#9. 解决一个问题, 给了一个ip地址:192.168.1.1,想要转为Array: [192,168,1,1]
irb(main):001:0> "192.168.1.1".scan(/(\d+)\.?/)
=> [["192"], ["168"], ["1"], ["1"]]
irb(main):002:0> "192.168.1.1".scan(/(\d+)\.?/).flatten
=> ["192", "168", "1", "1"]
irb(main):003:0> "192.168.1.1".scan(/(\d+)\.?/).flatten.map{|n| n.to_i }
=> [192, 168, 1, 1]
irb(main):001:0> "192.168.1.1".split(".").map{|x| x.to_i}
=> [192, 168, 1, 1]


分享到:
评论
2 楼 fireflyman 2011-04-17  
原地址的东西真的没了......看来保存还是有益的
1 楼 fireflyman 2010-12-31  
  #(1)字面字符,表示"与该字符匹配",如/a/ =~ "a"
  #(2)圆点通配符(.),表示"与任意一个字符匹配",如 /./ = "%w(a b c d ... w)"
  #(3)字符类,表示"与这些字符中的一个匹配",如/[dr]ejected/,表示"匹配d或r,后接ejected"
  #(4)常见字符集的特殊转义序列: /[0-9]/ => /\d/ || /\w/ => /[0-9a-zA-Z_][]/ || /\s/ 与任何空白字符(空格、制表符、换行符)想匹配
  #(5)用小括号来捕获子匹配
  #str = "Peel, Emma,Mrs.,talented amateur"
  #/([A-Za-z]+),[A-Za-z]+,(Mrs?\.)/.march(str) Ruby填写的这些变量都是全局变量,它们以数作为名字:$1,$2,等等.
  #$1包含正则表达式从左侧开始的第一对小括号内的子模式所匹配的子字符串(规则为:在匹配操作成功后,变量$n(n是一个数)包含正则表达式从
  #左侧开始的第n对小括号内的子模式所匹配的子字符串) puts "Dear #{$2} #{$1}," => Dear Mrs.Peel,
  #(6)? => "0个或1个"  * => "0个或多个" + => "1个或多个"
  #(7)特定次数的重复,如指定子模式的具体重复次数 /\d{3}-\d{4}/
  #也可指定一个范围/\d{1,10}/
  #单个数值后面跟一个逗号用于指定最小重复数(n或更多重复次数),如/\d{3,}/
  #(8)断言和锚都不会消耗任何字符.相反,它们表示一个限制条件,这个条件必须满足才能继续进行字符的匹配.
  #^ => "行首"   $ => "行尾"  \A =>字符串的开始  \z => 字符串的结尾  \Z => 字符串的结尾(不包括最后的换行符) \b => 单词边界
  #(9)修饰语它是一个字母,它位于正则表达式最后那个用于结束正则表达式的正斜杠的后面:
  #/abc/i 这里的i使得设计该正则表达式的匹配操作大小写不敏感.
  #/abc/m 这里的m使得圆点通配符可以与任何字符相匹配,包括换行符.
  #(10)scan方法从左到右扫描一个字符串,重复地进行测试以寻找指定模式的各个匹配,结果返回到一个数组中.
  #如"testing 1 2 3 testing 4 5 6".scan(/\d/)  => %w(1 2 3 4 5 6 )
  #(11)split方法会将一个字符串分割为几个子字符串,并返回到一个数组中.
  #"Ruby".split(//) => %w(R u b y)
  #(12)grep方法把与作为参数提供的正则表达式匹配的所有元素返回到一个数组(或者其他可枚举的对象)
  #["USA", "UK", "France", "Germany"].grep(/[a-z]/) => ["France", "Germany"]

相关推荐

    常用正则表达式包括最新手机...

    标题中的“常用正则表达式包括最新手机...”可能意味着我们要讨论的正则表达式涉及到识别手机号码。在中国,手机号码通常由11位数字组成,例如13800138000。一个简单的正则表达式来匹配中国大陆的手机号码可以是`^\d...

    完整版正则表达式应用一例.e.rar

    完整版正则表达式应用一例.e.rar 完整版正则表达式应用一例.e.rar 完整版正则表达式应用一例.e.rar 完整版正则表达式应用一例.e.rar 完整版正则表达式应用一例.e.rar 完整版正则表达式应用一例.e.rar

    正则表达式自动生成器 V2.0.0.1 官方多语版

    例如,你可以用正则表达式验证电子邮件地址的格式,或者从一大段文本中找出所有的电话号码。 这款V2.0.0.1版本的正则表达式自动生成器提供了一些关键功能,包括: 1. **向导式界面**:对于不熟悉正则语法的用户,...

    常用正则表达式汇总(文档).txt

    很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,包括校验数字、字符、一些特殊的需求等等。给自己留个...

    正则表达式.rar 正则表达式.rar

    掌握正则表达式需要时间和实践,可以从简单的模式开始,逐渐学习更复杂的构造。理解元字符、量词和分组是基础,然后可以通过在线测试工具(如Regex101、RegExr)进行实验,逐步提高对正则表达式的理解。 在实际应用...

    正则表达式大全 - 收集的最常用正则表达式

    3. 匹配空白行:`ns*r` - 此正则表达式匹配包含任意数量空格、制表符或其他空白字符的行。`n`匹配换行符,`s`匹配任何空白字符,`*`表示前面的元素可以出现零次或多次,`r`在某些环境(如Python)中代表换行符。 4....

    常用正则表达式大全.txt

    根据提供的文件信息,我们可以整理出一系列与正则表达式相关的...以上内容概括了从文件中提取出来的正则表达式知识点,这些知识点覆盖了正则表达式的多个应用场景,对于从事软件开发、数据分析等领域的人来说非常实用。

    正则表达式工具和常用表达式详解.zip

    在“正则表达式工具和常用表达式详解.zip”压缩包中,你将找到关于正则表达式的全面指南,无论你是初学者还是有经验的开发者,都能从中受益。这个资料可能包括了以下内容: 1. **正则表达式基础**:介绍正则表达式...

    正则表达式产生器Regexgen.js.zip

    RegexGen.js 是开发给 JavaScript 使用的正则表达式产生器,可以使用浅显易懂的语法来表现复杂的正则表达式。 RegexGen.js 基本上是为那些已经了解正则表达式引擎运作原理,但是不常使用正则表达式的人而开发的。...

    正则表达式辅助工具 JGsoft.RegexBuddy.v3.5.0 破解版

    正则表达式辅助工具 JGsoft.RegexBuddy.v3.5.0 破解版。

    精通正则表达式(第三版).pdf

    综上所述,《精通正则表达式(第三版)》不仅涵盖了正则表达式的理论知识,还提供了大量的实践指导,对于希望深入了解并熟练掌握正则表达式的开发者来说,是一本非常有价值的参考书籍。无论是对于初学者还是有一定...

    正则表达式生成器C#源码.rar

    这里用C#实现了正则表达式相关功能,并记录了所有的正则表达式的相关符号,是一个不可多得的正则表达式生成工具,这个工具适用3种场合: 1.对于初学正则表达式的朋友,这个工具适合你 2.需要C#正则表达式示例代码的...

    各种正则表达式.txt

    邮箱,手机号,日期,通行证,等等各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt各种正则表达式.txt

    常用正则表达式.rar

    本压缩包"常用正则表达式.rar"提供了一些常见的正则表达式示例,主要包括校验数字、字符以及满足特殊需求的表达式。 1. **校验数字的表达式** - 验证整数:`^\d+$`,这将匹配任何由一个或多个数字组成的字符串。 ...

    Boost.Regex.C++正则表达式快速入门[整理].pdf

    Boost.Regex.C++正则表达式快速入门[整理].pdf

    常用正则表达式-常用正则表达式-常用正则表达式

    常用正则表达式-常用正则表达式-常用正则表达式 常用正则表达式-常用正则表达式-常用正则表达式

    完整版正则表达式应用一例1.e.rar

    完整版正则表达式应用一例1.e.rar 完整版正则表达式应用一例1.e.rar 完整版正则表达式应用一例1.e.rar 完整版正则表达式应用一例1.e.rar 完整版正则表达式应用一例1.e.rar 完整版正则表达式应用一例1.e.rar

    java正则表达式.zip

    在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心类。 **1. Pattern类** Pattern类是Java正则表达式的起点,它将一个正则表达式编译成一个模式对象。这个编译过程可以优化...

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

Global site tag (gtag.js) - Google Analytics