- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章正则表达式详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本.
正则表达式可以干嘛?
1、数据有效性验证,可以对一个字符串进行测试,看该字符串是否符合某种规定.
2、替换文本,可以在文档中将指定的文字删除,或替换为其他文字.
3、根据字符串提取一个子字符串,用来在文本或输入字段中查找特定文字.
正则表达式语法 。
一个正则表达式是由普通字符(a-z)和特殊字符(元字符)组成的文字模式,该模式作为一个模版,将某个字符模式与所搜索的字符串进行匹配.
元字符 。
具有特殊意义的专用字符.
基本元字符 。
. 匹配除换行以外的任意字符,例如正则表达式 r.t 能够匹配 “rat、rut、r t”,但是不能匹配root 。
[] 匹配匹配一个出现在[]中的字符 。
| 或 敏感词 ab|cd|ed|df 。
() 提高优先级 a(bc) 实现分组 。
限定元字符 。
* 重复零次或多次 。
+ 重复一次或多次 。
? 重复零次或一次 。
{n} 重复n次 。
{n,} 重复n次或多次 。
{n,m} 重复n到m次 。
首尾元字符 。
^ 匹配字符串开始 例如正则表达式 ^when 能够匹配到 ”when in the“ 的开始,但不能匹配到 ”what and when in the“ 。
$ 匹配字符串结束 例如正则表达式 food$ 能够匹配到 “he's food” 的末尾 。
简写形式 。
\b 单词的开始或结束 。
\d 匹配0-9的数字 \D非数字 。
\s 任意的空白符 包括tab和换行符 \S大写 非 空白之外的所有字符 。
\w 匹配字母、数字或下划线 \W 非字母、数字下划线 。
转义字符 。
如果想查找元字符本身的话,比如想查找.或者*就会出现问题,因为会解释成其他意思。这时就需要使用\来取消这些字符的特殊意义.
因此需要使用\. \* 查找\本身应该写\\ 。
在javascript中使用正则表达式 。
创建正则表达式 。
1
2
3
4
|
//字面值
var reg = /\d+/;
//构造函数
var regx = new RegExp(<
a
href
=
"file://\\d+"
>\\d+</
a
>);
|
匹配 。
1
2
3
4
5
6
7
8
9
|
if(reg.test("45646515"))
{
alert("OK");
}
if(regx.test("sd"))
{
alert("ok")
}
|
提取 。
1
2
3
4
5
6
7
8
|
var str="853020304@qq.com";
var reg = /([a-zA-Z0-9]+)@([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+)/;
var match = reg.exec(str);
alert(match[0]); //853020304@qq.com 匹配到的对象
alert(match[1]); //853020304 [1][2]分别是各个组
alert(match[2]); //qq.com
alert(match[3]); //.com
|
循环提取 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var str = "12345";
var r = /\d\d/g; //g global 全局匹配
var m = r.exec(str); //12
alert(m);
m = r.exec(str); //34
alert(m);
m = r.exec(str); //null 没有了返回null
alert(m);
var arr = [];
var m = null;
while((m=r.exec(str)) != null) //如果不等于null 继续循环
{
arr.push(m); //添加到数组
}
alert(arr.length); //[0]=12 [1]=34
|
替换 。
1
2
3
4
5
6
7
8
9
|
string str = <
string
>.replace(正则表达式或字符串,替换为某字符串);
var str = "ab--c--d--e--f-g";
var result = str.replace(/-+/g,','); //如果不写g 则只替换第一个
alert(result); //ab,c,d,e,f,g
var date = "2015年8月24日";
var result = date.replace(/(\d+)年(\d+)月(\d+)日/,"$1-$2-$3");
alert(result);//2015-8-24
|
在c#中使用正则表达式 。
1
2
3
4
5
|
var regx =
"^[a-zA-Z0-9]{6,20}$"
;
if
( ! Regex.IsMatch(
"abcdef;sd123"
,regex)
{
//长度必须6-20,字母和数字
}
|
常用表达式 。
匹配身份证:\d{15}|\d{18} 。
匹配中国邮政编码:[1-9]\d{5}(?!\d) 。
匹配腾讯QQ号:[1-9][0-9]{4,} 。
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 。
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 。
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 。
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 。
匹配首尾空白字符的正则表达式:^\s*|\s*$ 。
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 。
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 。
限制网页表单里的文本框输入内容 。
只能输入中文:
1
|
<input type=
"text"
onkeyup=
"value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste=
"clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
/>
|
。
只能输入数字:
1
|
<input type=
"text"
onkeyup=
"value=value.replace(/[^\d]/g,'') "
onbeforepaste=
"clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
/>
|
。
只能输入数字和英文:
1
|
<input type=
"text"
onkeyup=
"value=value.replace(/[\W]/g,'') "
onbeforepaste=
"clipboardData.setData('text',clipboardData.getData('text).replace(/[^\d]/g,''))"
/>
|
以上内容就是本文对正则表达式做的详解,希望大家喜欢 。
最后此篇关于正则表达式详解的文章就讲到这里了,如果你想了解更多关于正则表达式详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
全称“Java Virtual Machine statistics monitoring tool”(statistics 统计;monitoring 监控;tool 工具) 用于监控虚拟机的各种运
主要是讲下Mongodb的索引的查看、创建、删除、类型说明,还有就是Explain执行计划的解释说明。 可以转载,但请注明出处。  
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发。 2>循环服务器和并发服务器
详解 linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: ?
首先,将json串转为一个JObject对象: ? 1
matplotlib官网 matplotlib库默认英文字体 添加黑体(‘SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'
在并发编程中,synchronized关键字是常出现的角色。之前我们都称呼synchronized关键字为重量锁,但是在jdk1.6中对synchronized进行了优化,引入了偏向锁、轻量锁。本篇
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。  
实例如下: ? 1
1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型;提供了泛型支持;可以读缓存和单个缓存
argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 复制代码 代码如下: <script
一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,googl
今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1、PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 funct
摘要:虚拟机安装时一般都采用最小化安装,默认没有lspci工具。一台测试虚拟网卡性能的虚拟机,需要lspci工具来查看网卡的类型。本文描述了在一个虚拟机中安装lspci工具的具体步骤。 由于要测试
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
目录 算术运算符 基本四则运算符 增量赋值运算符 自增/自减运算符 关系运算符 逻
如下所示: ? 1
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个
Linux的网络虚拟化是LXC项目中的一个子项目,LXC包括文件系统虚拟化,进程空间虚拟化,用户虚拟化,网络虚拟化,等等,这里使用LXC的网络虚拟化来模拟多个网络环境。 本文从基本的网络设备讲
? 1
我是一名优秀的程序员,十分优秀!