- 浏览: 2073289 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
<div class="quote_title ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
看了一些需要验证ip地址输入格式的,都不是很贴切,需要用的,用这个吧
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
参考其他
首先问大家一个问题:
php?name=%B1%E0%B3%CC%D3%EF%D1%D4" onclick="tagshow(event)" class="t_tag">编程语言(比如ruby)中什么数据类型最重要?可能大家会说到──对象,数组....
其实是String(字符串)
而对字符串的处理很大一部分依赖匹配,而匹配方法中,正则表达式是“降龙十八掌”,下面我们就学习正则表达式
首先是 元字符:
. :匹配除换行符以外的任意字符
[x]:匹配中括号中的任意一字符 如[abc]则匹配a或b或c
[^x] :匹配除了x以外的任意字符 :如[^abc] 则匹配除a/b/c以外的任意一字符
^ :匹配开始地方 如:^a 表示匹配以a开头的,^[a-z] 表示以小写任意一字母开头的
$ :匹配结束地方 如:a$ 表示匹配以a结尾的
x|y :匹配x或匹配y 如 ^[a-z] | ^[0-9] 表示以任意一小写字母开头,或以任意一数字开头的。实现上这个匹配也可以写成^[a-z0-9],不过|还是有它的独有的适用之处的
量词(限定符)
? :重复0次或1次
× :重复0次或多次
+ :重复1次或多次
{m} :重复m次
{m,} :重复m次或更多次
{m,n} :重复m次至n次
例如 "aa" "aaa" "aaaa" 正则表达式 /^a{2,3]$/ 能匹配第一个和第二个字符串,因为此表达式是说,从开头到结尾中间是连续2个至3个a都可以。
例:"d3df" "abcd" "3dfs4" "dfsde" ,正则表达式/^[a-z]*$/ 能匹配第二个和第四个,因为此表达式是说,从开头到结尾是0个或多个(不限制多少个)a-z之内的字符(即小写字母)但,对此例,用/[a-z]*/则能匹配成功这四个字符串。如果换用 /[a-z]+$/则只能匹配成功除第3个字符串以外的三个字符串。为什么?此表达式是说以1个或多个连续的a-z之内(即小写字母)的字符结尾。
常用字符集
\s :所有空白字符
\S :所有非空白字符
\w :所有字母、数字、下划线、汉字的字符
\W :所有不是字母、数字、下划线、汉字的字符
\d :所有数字字符
\D :所有非数字字符
\b :单词的开始或结尾
\B :匹配不是单词或开始的位置
分组
上面我们例用 {} × +等可重复多个字符,如果想要重复一个字符串又该怎么办,你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了
例如,简单的匹配IP地址,(\d{1,3}\.){3}\d{1,3} 此表达式的意思是,前面小括号中是说匹配数字的1-3个和一个字符.,后面一个{3}表示重复3次,这3次是对前面整个小括号所匹配的内容(即是一个字符串)复复3次,再后面匹配一个1-3位的数字
后向引用
后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本
例 \b(\w+)\s*\1 此表达式或匹配两个连续的单词,\b匹配单词开始位置,\w+是匹配任意的字符至少一个,小括号进行了第一个编组,\s*是匹配0个或多个空格,后面的\1是引用了前面第一个编组匹配成功的字符串,如hello hello 对于此表达式,\b(\w+)是匹配了第一个hello ,则\1就是使用它的值--hello
(? =exp)也叫零宽先行断言或正预查,它匹配文本中的某些位置,这些位置的后面能匹配给定的后缀exp。比如/b/w+(?=ing/b),匹配以 ing结尾的单词的前面部分(除了ing以外的部分),如果在查找I'm singing while you're dancing.时,它会匹配sing和 danc。
(?!exp)零宽负向先行断言,只会匹配后缀exp不存在的位置。/d{3}(?!/d)匹配三位数字,而且这三位数字的后面不能是数字。
当正则表达式中包含能接受重复的限定符(指定数量的代码,例如*, {4,8}等)时,通常在使整个表达式能得到匹配的前提下匹配尽可能多的字符。考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b 结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配
在 * + {}后面加上? 表示以非贪婪法去匹配,再以上例,a.*?b去匹配aabab的话,则会匹配aab
下面是一些常用的正则表达式:
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?<\\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\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个英文字母或者下划线组成的字符串
评论
var pattern = /^(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])$/;
这位验证的比较全,楼主的 01.1.1.1也为合法,实为非法
var pattern = /^(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])\.(0|[1-9]?|1\d\d?|2[0-4]\d|25[0-5])$/;
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 931heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3256reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3289alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1470问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1380这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1344以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1903首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2274这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2265开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1235class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8139TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2018刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1485这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1942面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17210git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2733简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 945第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1693开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12952Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2116又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...
使用正则表达式来判断用户输入的IP地址格式是否正确
在处理IP地址时,正则表达式可以帮助我们验证一个字符串是否符合IPv4地址的标准格式。 ### IP地址的正则表达式分析 给定的正则表达式为:(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5...
给定文件中的标题、描述及部分内容聚焦于“IP验证正则表达式”,这是一项关键的技术知识点,用于确保输入的字符串符合IPv4地址的标准格式。 ### IP地址基础知识 IP(Internet Protocol)地址是互联网上每个设备的...
最后写了一个IP地址的正则表达式验证程序。 代码如下:((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d) 截图如下: 您可能感兴趣的文章:javascript 手机号码正则表达式验证函数JS正则表达式验证数字...
正则表达式验证url 验证url不能带 页面 如www.baidu.com/3.html 可以是 ip地址
6. 匹配Email地址:`w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*` - 这个正则表达式用于验证Email地址的格式,但可能无法匹配所有有效的Email地址,因为Email地址的规则相当复杂。 7. 匹配网址URL:`[a-zA-z]+://[^s]*` ...
基于这些规则,我们可以设计出一个用于验证IPv4地址格式的正则表达式。 ### 正则表达式的构成 给定文件中的正则表达式是: ``` "^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\...
4. 电子邮箱地址:`/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/` - 这个正则表达式用于验证电子邮件地址的格式,包括用户名、@符号、域名和顶级域名。 5. URL:`/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2...
综上所述,Android中使用正则表达式验证IP地址和端口号是确保网络通信数据格式正确的重要手段。理解并掌握正则表达式的使用,能够帮助开发者编写出更加稳定和安全的Android应用程序。在进行IP和端口验证时,开发者...
根据给定的文件信息,我们可以总结出以下...综上所述,通过以上知识点可以看出,Java正则表达式在处理各种格式的数据验证时非常实用且灵活。开发者可以根据具体需求选择合适的正则表达式来提高代码的健壮性和安全性。
通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - 正则表达式:`^[0-9]*$` - 示例:`12345` 2. **...
本文将详细介绍几种常见类型的正则表达式验证规则,包括邮箱、数字、日期、电话号码、IP地址、QQ号码、MSN账号以及身份证号码。 #### 二、正则表达式验证规则详解 ##### 1. 英文字符验证 ```javascript this.reg....
java正则表达式验证,包含:验证邮箱、验证IP地址、验证网址Ur、l验证电话号码、验证输入密码条件(字符与数据同时出现)、验证输入密码长度 (6-18位)、验证输入邮政编号等
### 正则表达式验证表单 ...以上介绍了几种常见的正则表达式验证方法,这些方法可以帮助开发者确保用户输入的数据符合预期的格式。在实际应用中,还可以根据具体需求调整正则表达式的细节,以满足更复杂的验证场景。
《常用正则表达式验证方法》这个压缩包文件包含了常见正则表达式的应用实例,旨在帮助用户快速理解和掌握这些常用的验证方法。文件名中的"验证方法"通常指的是通过正则表达式来检验输入是否符合特定格式或规则。 1....
在IT领域,正则表达式是处理文本数据的强大工具,尤其在数据验证、格式化等方面有着不可替代的作用。对于网络编程而言,能够准确地验证和处理IP地址是必不可少的能力。本文将详细解析如何使用正则表达式进行IP地址的...
本文将详细探讨如何使用C#中的正则表达式来验证电子邮件(Email)、IP地址以及URL网址的格式。 ### 一、验证Email格式 电子邮件地址是互联网上最常用的联系方式之一,其格式通常包含用户名部分和域名部分,两者...
使用正则表达式验证IP地址 为了验证一个字符串是否符合IPv4地址的标准格式,可以使用以下正则表达式: ```java "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|...
在报表开发工具FineReport中,正则表达式同样扮演着重要的角色,尤其是在数据验证方面。 #### 二、基本语法解析 1. **特殊符号**: - `\d`:匹配任意一个数字,即匹配0~9中的任意一个。 - `\w`:匹配任意一个...