- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章半小时精通正则表达式 经典实例介绍由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么, "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配 "notice": 匹配包含notice的字符串 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边 接着,说说 '*', '+',和 '?', 他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示: "zero or more"相当于{0,}, "one or more"相当于{1,}, "zero or one."相当于{0,1}, 这里是一些例子: "ab*": 和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串("a", "ab", "abbb", 等); "ab+": 和ab{1,}同义,同上条一样,但最少要有一个b存在 ("ab", "abbb", 等.); "ab?":和ab{0,1}同义,可以没有或者只有一个b; "a?b+$": 匹配以一个或者0个a再加上一个以上的b结尾的字符串. 要点, '*', '+',和 '?'只管它前面那个字符. 你也可以在大括号里面限制字符出现的个数,比如 "ab{2}": 要求a后面一定要跟两个b(一个也不能少)("abb"); "ab{2,}": 要求a后面一定要有两个或者两个以上b(如"abb", "abbbb", 等.); "ab{3,5}": 要求a后面可以有2-5个b("abbb", "abbbb", or "abbbbb"). 现在我们把一定几个字符放到小括号里,比如: "a(bc)*": 匹配 a 后面跟0个或者一个"bc"; "a(bc){1,5}": 一个到5个 "bc." 还有一个字符 '│', 相当于OR 操作: "hi│hello": 匹配含有"hi" 或者 "hello" 的 字符串; "(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字符串; "(a│b)*c": 匹配含有这样多个(包括0个)a或b,后面跟一个c 的字符串; 一个点('.')可以代表所有的单一字符,不包括"\n" 如果,要匹配包括"\n"在内的所有单个字符,怎么办? 对了,用'[\n.]'这种模式. "a.[0-9]": 一个a加一个字符再加一个0到9的数字 "^.{3}$": 三个任意字符结尾 . 中括号括住的内容只匹配一个单一的字符 "[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样); "[a-d]": 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文 "^[a-zA-Z]": 匹配以大小写字母开头的字符串 "[0-9]%": 匹配含有 形如 x% 的字符串 ",[a-zA-Z0-9]$": 匹配以逗号再加一个数字或字母结尾的字符串 你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' ------------------------------------------------------------------------- ^ 和 $ 分别用来匹配字符串的开始和结束 ------------------------------------------------------------------------- 例1 ^<b> 开头 一定要有"<b>"字符串; 例2 </b>$ 结尾 一定要有"</b>" 的字符串; 例3 ^abc$ 以abc开头和以abc结尾的字符串,实际上是只有abc匹配 例4 abc 没符号就 匹配包含abc的字符串 ------------------------------------------------------------------------- * + 和 ? 用来表示一个字符可以出现的次数或者顺序. 他们分别表示 ------------------------------------------------------------------------- {0,} = * 例1 ab{0,} 匹配以a开头后面B出现O-N次( "a", "ab", "abb", "abbbbbbbbbbbbbbbbb", 无限...) {1,} = + 例2 ab{1,} 匹配以a开头后面B出现1-N次( "ab", "abb", "abbbbbbbbbbbbbbbbb", 无限...) {0,1}= ? 例3 ab{0,1} 匹配以a开头后面B出现O-1次( "a", "ab") 例4 a{0,1}b+$ 匹配以0个或者1个a 再加上一个b结尾的字符串. ( "b", "ab") 注(2种写法) ab{0,}也可以写成 ab* ab{1,}也可以写成 ab+ ab{0,1}也可以写成 ab? a{0,1}b+$也可以写成 a?b+$ (1)1要点, '*' '+',和 '?'只管控制它前面那个字符出现次数. 2 {N,N} 几到几次 {0} O次 3{}这个内不能为负数 (2)次数是可以修改的 例5 ab{2} 要求a后面一定要跟两个b(一个也不能少)如 ("abb"); 例6 ab{2,} 要求a后面一定要有两个或者两个以上b 如("abb", "abbbb", 等.); 例7 ab{3,5} 要求a后面可以有2-5个b("abbb", "abbbb", or "abbbbb"). (3)后面跟多个字符用() 例8 a(bc)* 匹配 a 后面跟0个或者一个"bc"; 当然你也可以写成"a(bc){0,}" 例9 a(bc){1,5} 匹配1个到5个 "bc." ------------------------------------------------------------------------- │ 相当于OR 用来表示 1个或者 多个或者 ------------------------------------------------------------------------- 例1 A│B 匹配含有"A" 或者 "B" 的 字符串; 例2 (A│B)C 匹配含有 "AC" 或者 "BC"的字符串; 例3 (A│B)*C 匹配含有(包括0-1个)a或b,后面跟一个c ------------------------------------------------------------------------- . 可以代表所有的单一字符 ------------------------------------------------------------------------- . 不包括"\n"空格 如果有空格就用 但空格加一字符[\n.] 多个空格+1字符 [\n\n\n\n\n\n.] 例1 a.[0-9] 一个a 加一个字符 再加一个0到9的数字 例2 ^.{3}$ 三个任意字符结尾 ------------------------------------------------------------------------- '[ab]' 中括号括住的内容只匹配一个单一的字符 ------------------------------------------------------------------------- 例1 [ab] 匹配单个的 a 或者 b ( 和 "a│b" 一样); 例2 [a-d] 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文 例3 ^[a-zA-Z] 匹配以大小写字母开头的字符串 例4 [0-9]% 匹配含有 形如 x% 的字符串 例5 ,[a-zA-Z0-9]$ 匹配以逗号再加一个数字或字母结尾的字符串 例6 %[^a-zA-Z]% 匹配含有两个百分号里面有一个(非)字母的字符串. 你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 要点1:^[内容] ^在[]外开头,就表示以内容开头 要点2:[^内容] ^在[]里开头,就表示排除里面的内容(^非的意思) 要点3: 匹配含有这些字符的字符串. 在中括号里[*\+?{}.] 或者' 符号将失效 括号只匹配单一字符 要点4: []中含有']' 最好把它作为列表里的第一个字符(可能跟在'^'后面) 要点5: []中含有有'-' 最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点[a-d-0-9]中间的'-'将有效. ------------------------------------------------------------------------- \b 和 \B 1匹配一个单词右边界 2匹配非单词边界 ------------------------------------------------------------------------- 例1 've\b': 可以匹配love里的ve而不匹配very里有ve 例2 'ov\B': 可以匹配love里的ov而不匹配ovry里有ov ------------------------------------------------------------------------- \d 和 \D ------------------------------------------------------------------------- 例1 \d 匹配一个数字字符。等价于 [0-9]。 例2 \D 匹配一个非数字字符。等价于 [^0-9]。 ------------------------------------------------------------------------- \w 和 \W ------------------------------------------------------------------------- 例1 \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]' 例2 \W 匹配包括下划线的任何非单词字符。等价于 '[^A-Za-z0-9_]'。 ------------------------------------------------------------------------- 匹配非打印字符 ------------------------------------------------------------------------- 字符 含义 \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f 匹配一个换页符。等价于 \x0c 和 \cL。 \n 匹配一个换行符。等价于 \x0a 和 \cJ。 \r 匹配一个回车符。等价于 \x0d 和 \cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。等价于 \x09 和 \cI。 \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 ------------------------------------------------------------------------- 例子 ------------------------------------------------------------------------- 匹配首尾空白字符的正则表达式:^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 920-209 642-964 匹配腾讯qq号:[1-9][0-9]{4,} 1+后面四为的数字开始,也就是 10000 匹配中国邮政编码:[1-9]d{5}(?!d) 中国邮政编码为6位数字 匹配身份证:d{15}|d{18}评注:中国的身份证为15位或18位 匹配ip地址:d+.d+.d+.d+ 评注:提取ip地址时有用 ------------------------------------------- ^ $ //开始到结尾 + //连续1-N个 (连在一起的)(也就是-{1,} ) -? //表示负和非负 (也就是-{0,1} ) [0-9]* //表示前面的位数0-N(也就是[0-9]{0,} ) .? //表示有点或者无点 [^ //非里面的内容 [a-z] //匹配所有的小写字母 [A-Z] //匹配所有的大写字母 [a-zA-Z] //匹配所有的字母 [0-9] //匹配所有的数字 0-9的整数 [0-9.-] //匹配所有的数字,句号和减号 ------------------------------------------------ ^[a-zA-Z0-9_]+$ //所有包含一个以上的字母、数字或下划线的字符串 //举例子连在一起 aA0_A001a_ ^[0-9]+$ //所有的正数 (也可以说是非负整数) //举例子 345500687008099900999 ^-?[0-9]+$ //所有的整数 (包括 负整数和整数) //举例子 -43443 或者 43443 ^-?[0-9]*.?[0-9]*$ //所有的小数 (包括正 副小数 小数点前后的位数无限长) //举例子 -10.00 或者100000.0000 如果没小数点 后面肯定没数字, 所以前面加一个.? 来判断是否有小数点,按道理说可以不需要.?是多余的 因为这个是专门判断小数的,如果没小数点了,还叫付数吗 [^a-z] //除了小写字母以外的所有字符 [^/^] //除了"/"和"^"字符之外的所有字符 [^"'] //除了双引号(")和单引号(')之外的所有字符 这篇文章以实例为主,方便有经验的朋友,如果没有相关经验可以看我们的正则表达式30分钟入门教程 。
最后此篇关于半小时精通正则表达式 经典实例介绍的文章就讲到这里了,如果你想了解更多关于半小时精通正则表达式 经典实例介绍的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
本文实例总结了常用SQL语句优化技巧。分享给大家供大家参考,具体如下: 除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生。 ①通过变量的方式来设置参数 好:
写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多。CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位
所以我必须解决类的背包问题。到目前为止,我想出了以下内容。我的比较器是确定两个主题中哪一个是更好选择的函数(通过查看相应的(值,工作)元组)。 我决定迭代工作量小于 maxWork 的可能主题,并且为
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级
代码如下: 复制代码代码如下: USE [tempdb] GO /****** Object: UserDefinedFunction [dbo].[fun
最近收到一个工作要求,让我完成一个每天一次的Linux服务器巡检工作(服务器的版本为红帽6.4),不可以使用监控软件来操作。在这里,把我的巡检过程和巡检脚本放送给大家做一参考。 首先,巡检内容
可以在 Classic ASP 中动态创建“空”对象并创建对象属性吗? 以这个 JavaScript 示例为例: var sample = new Object(); sample.prop = "O
我正在向旧的经典 asp 站点添加功能,但遇到了一个有趣的问题。页面上的以下行导致有用的错误“需要对象:''” strServerName = Request.ServerVariables("ser
我有一个经典的 ASP 应用程序,我正在处理日期截止。我的服务器位于中部时间,但我在东部时间。发生的情况是我的应用程序认为它早了一个小时,而我的截止时间晚了一个小时。我敢肯定,如果用户在太平洋时间,他
我是经典 ASP 的初学者。需要拆分一个由逗号分隔的许多电子邮件组成的字符串,并使用稍后生成的附加代码将结果插入(逐个电子邮件)到表格中。每条记录都应该有一个电子邮件地址。问题是我陷入了数组范围错误。
这个问题已经有答案了: one condition, multiple events (2 个回答) 已关闭 6 年前。 如何用更小的语句替换 1,2,3..。我尝试将 1 放入 10,但显示错误。
我是 ExtJS 的新手,所以我不知道是否可能。 Google 只回答如何为图表制作工具提示,所以... 我需要制作一个带有工具提示的网格,当用户将鼠标放在单元格上时将显示该工具提示。在该工具提示中,
我正在使用一个非常奇怪的 VB 版本...它不需要我告诉它什么是什么,它想自己弄清楚。 在 C# 中,我可以轻松地对数组进行硬编码...在 VB 中则不然。 我想在调用函数时创建一个硬编码数组...但
我的数据库访问代码如下: set recordset = Server.CReateObject("ADODB.Recordset") set cmd1 = Server.CreateObject(
我有 html 按钮和文本框的代码:文本框是我输入文本的地方,以便我可以在表格上进行一些更改。 'textbox " /> 'button Clear 我现在需要做的是单击“清除”按
我有一个表单,提交后会通过电子邮件发送。该表单使用 JavaScript 进行验证。经典 ASP 处理表单,即获取输入的数据、创建然后发送电子邮件。有报道称正在提交空白表格。仅发送标题和 Logo 。
加载页面 A.asp 默认情况下正在执行,从那里开始执行电子邮件的情况,如果是电子邮件,我们将调用页面 B。我想在控件被执行时执行相同的电子邮件情况从页面 B 转移到页面 A。请帮助我。 Page A
我正在使用经典 ASP 开发一个项目,例如,我想添加一些用户作为临时列表,当我提交表单时,这些数据将保存到数据库中。 我知道如何在 asp.net 中使用它,但不知道如何在经典 asp 中使用它。 例
我有一个带有简单 html 表的经典 ASP 页面,我想根据从数据库中提取的未知数量的记录循环表行,但是,当我使用 do/while 循环循环记录时,我收到一条错误消息,指出 Either BOF o
嘿,一直在寻找一段时间,但我似乎找不到任何有关如何在经典 asp 中处理日期的信息。 现在,我需要一种方法来计算今年过去的天数。我正在考虑一个简单的函数,它将获取当前日期,然后使用 (day = 1,
我是一名优秀的程序员,十分优秀!