正则

正则表达式

£可爱£侵袭症+ 提交于 2019-11-27 10:01:26
一说正则我已经知道你很晕了,现在就让我们先来看一些实际的应用。 在线测试工具 http://tool.chinaz.com/regex/ 首先你要知道的是,谈到正则,就只和字符串相关了。在我给你提供的工具中,你输入的每一个字都是一个字符串。其次,如果在一个位置的一个值,不会出现什么变化,那么是不需要规则的。  比如你要用"1"去匹配"1",或者用"2"去匹配"2",直接就可以匹配上。这连python的字符串操作都可以轻松做到。那么在之后我们更多要考虑的是在同一个位置上可以出现的字符的范围。 来源: https://www.cnblogs.com/ops-song/p/11357623.html

正则

烂漫一生 提交于 2019-11-27 09:49:44
正则 正则就有一串有规律的字符串 掌握好正则对于编写shell脚本有很大的帮助 各种编程语言都有正则,原理是一样的 下面主要学习 grep egrep sed awk grep grep[-cinvABC] 'word' filename -c 行数 -i 不区分大小写 -n显示行号 -v 取反 -r 遍历所有的子目录 -A后面跟数字,过滤出符合要求的行以及下面的n行 -B同上 过滤出符合要求的行以及上面的n行 -C 同上过滤出符合要求的行以及上下的n行 -E 或者 egrep r.o .表示任意的一个字符 r o 表示任意多个字符 左边的字符重复0到n次 r+o +表示+前面1次或者多次 +左边一次和多次 r?0 ?表示前面0或者1 ?< . < + < 个人理解 | 表示或者 grep -n 'root' /etc/passwd //过滤含有root的行,显示行号 grep -nv 'nologin' /etc/passwd //过滤出不含有nologin的行,显示行号 grep '[0-9]'/etc/inittab //过滤出含有数字的行 任意一个字符数字 grep -v '[0-9]'/etc/inittab //过滤出不含有数字的行 grep -v '^#' /etc/inittab //过滤不是以#开头的行 grep -v '^#' /etc/inittab|grep

正则表达式详解(贪婪与懒惰、前瞻与后顾、后向引用等)

老子叫甜甜 提交于 2019-11-27 09:30:44
之前嫌正则麻烦,一直没有深入去了解过正则,能不用的地方就不使用。 最近项目中遇到了不可避免的正则使用,所以花了点时间去了解并整理了一下,理解不一定完全准确,如有不对欢迎指出,希望对大家有所帮助。 一、名词解释 首先我们了解几个名词:元字符 、 普通字符、打印字符、非打印字符、 限定符 、定位符、非打印字符 元字符: 可以简单理解为变成语言中的关键字,在正则匹配时会有特殊的语义,不能当做普通字符直接使用,类似于 * ^ ? 等等一类的字符,如果需要直接使用元字符,需要使用 /+元字符 的方式,比如 要匹配 * 号 则正则应该写成 \* 普通字符: 普通字符就是包括所有的非元字符在内的打印字符和非打印字符 打印字符: 普通的字符,没有特殊含义 a-zA-z0-9等 非打印字符: 由\+普通字符组成的一些不会在打印时显示出来的字符,比如换行符、换页符等等 二、正则表达式所有特殊字符 (不懂的后面回来看) 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置

常用的正则表示式

岁酱吖の 提交于 2019-11-27 08:29:47
非负整数:^\d+$ 正整数:^[0-9]*[1-9][0-9]*$ 非正整数:^((-\d+)|(0+))$ 负整数:^-[0-9]*[1-9][0-9]*$ 整数:^-?\d+$ 非负浮点数:^\d+(\.\d+)?$ 正浮点数 : ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)$ 非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 负浮点数:^(-((正浮点数正则式)))$ 英文字符串:^[A-Za-z]+$ 英文大写串:^[A-Z]+$ 英文小写串:^[a-z]+$ 英文字符数字串:^[A-Za-z0-9]+$ 英数字加下划线串:^\w+$ E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ 邮政编码:^[1-9]\d{5}$ 中文:^[\u0391-\uFFE5]+$ 电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2

正则

﹥>﹥吖頭↗ 提交于 2019-11-27 08:02:47
1. 校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d

正则

旧巷老猫 提交于 2019-11-27 07:58:50
验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 验证长度为3的字符:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由26个小写英文字母组成的字符串:^[a-z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 来源: https://www.cnblogs.com/lick468/p/11352498.html

邮箱正则验证

为君一笑 提交于 2019-11-27 07:43:41
惯例广告一发,对于初学真,真的很有用 www.java1234.com ,去试试吧! 一.相关的代码 1 function test() 2 { 3 var temp = document.getElementById("text1"); 4 //对电子邮件的验证 5 var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; 6 if(!myreg.test(temp.value)) 7 { 8 alert('提示\n\n请输入有效的E_mail!'); 9 myreg.focus(); 10 return false; 11 } 12 } 13 //由于方法相同,一下只写出相关的正则表达式 14 //对于手机号码的验证(提供了两种方法) 15 var mobile=/^((13[0-9]{1})|159|153)+\d{8}$/; 16 var mobile1=/^(13+\d{9})|(159+\d{8})|(153+\d{8})$/; 17 //对于区号的验证 18 var phoneAreaNum = /^\d{3,4}$/; 19 //对于电话号码的验证 20 var phone =/^\d{7,8}$/; 二

邮箱正则校验

◇◆丶佛笑我妖孽 提交于 2019-11-27 07:43:22
var should = require('should'); describe('Array', function() { describe('#indexOf()', function() { it('should return -1 when the value is not present', function() { true.should.be.eql(verifyMultipleEmail("aa@qq.com")); false.should.be.eql(verifyMultipleEmail("aa,@qq.com")); true.should.be.eql(verifyMultipleEmail("aa@qq.com, cc@163.com")); false.should.be.eql(verifyMultipleEmail("aa@qq.com, ,cc@163.com")); false.should.be.eql(verifyMultipleEmail("aa@qq.com, cc@163.com,")); false.should.be.eql(verifyMultipleEmail(",")); false.should.be.eql(verifyMultipleEmail("@")); true.should.be.eql

正则邮箱

我只是一个虾纸丫 提交于 2019-11-27 07:40:10
正则 邮箱 可针对网页源码内容提取 有不足请提出完善 ([a-zA-Z0-9-_.])+@+[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+) 如需针对域名后缀,则修改为 ([a-zA-Z0-9-_.])+@+(.sample.com) 测试: 实在不行就使用大招,穷举法! 需要注意:当出现二级域名时,会同时出现name@sample.com.cn与name@sample.com两个邮箱,那么此时需要做对比工作,当两个邮箱存在包含关系情况下取最长舍最短。 private static string[] DomainSuffix = { "tk", "cf", "ga", "gq", "ml", "top", "work", "cn", "com.cn", "net.cn","org.cn", "xyz", "wang", "cq.cn", "he.cn", "sx.cn", "nm.cn", "ln.cn", "hl.cn", "js.cn","fj.cn", "jx.cn", "sd.cn", "ha.cn", "hb.cn", "hn.cn", "gx.cn", "hi.cn", "sc.cn", "gz.cn","yn.cn", "xz.cn", "sn.cn", "gs.cn", "qh.cn", "nx.cn", "xj.cn", "tw.cn", "hk

php正则匹配汉字!

谁说我不能喝 提交于 2019-11-27 05:10:25
php正则匹配汉字! /^[\x{4e00}-\x{9fa5}]+$/u 以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式 大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果。 下面是utf-8编码的例子: $str = "汉字"; if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) { print("该字符串全部是中文"); } else { print("该字符串不全部是中文"); } 下面的例子包含gbk,gb2312的 例子: <?php $action = trim($_GET['action']); if($action == "sub") { $str = $_POST['dir']; //if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式 if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式 { echo "<font color=red>您输入的[".$str."]含有违法字符</font>"; } else {