Flex程序设计(1)正则表达式

1.基本语法
 . 匹配除换行符"\n"外的任意单个字符。
 * 匹配前面Flex正则表达式的零次或多次出现。
eg:Alert.show("ThisBookIsGoodBoooookBoxBx.".replace(/Bo*/g,"Coo")) 
                     ThisCookIsGoodCookCooxCoox

+  匹配前面Flex正则表达式的一次或多次出现。
eg:Alert.show("ThisBookIsGoodBoooookBoxBx.".replace(/Bo+/g,"Coo"))
                      ThisCookIsGoodCookCooxBx

?  代表出现在它之前的项目有或没有均可。
eg:Alert.show("ThisBookisGoodBook".replace(/G?oo/g,"Coo"));
                       ThisBCookisCoodBCook.

{} 根据括号内的不同而不同。单个数字{n}意味着前面的模式重复n次,如:[A-Z]{3};{n1,n2}表示重复n1-n2次;{名字}指示用名字替换。
eg:{n}在它之前出现的项目必须重复n次,{n,}在它之前出现的项目至少重复n次,{n,m}在它出现之前的项目重复n次到m次
Alert.show("ThisBookidgoodBoooooookBok".replace(/Bo{3,}k/g,"_"));
                  ThisBookidgood_Bok
   
() 将一系列Flex正则表达式归组。"*"、"+"和"{}"中的每个都直接作用于它左侧的表达式,而"|"通常影响左侧表达式和右侧的所有内容。
eg:把字符串组成一个组,要求A后面可以出现0次或者多次字串Go的重复
Alert.show(AGoGoIsAnameAGo‘Sfather".replace(/A(Go)*/g,"_"));
                  _Is_name_‘sfather

[] 匹配括号中字符的任意一个。用"-"指示字符的范围。如果第一个字符是抑扬符号"^",那么它的含义变为匹配括号内字符以外援任意字符,及表反义。
eg1:Alert.show("我的Book价格是45元".replace(/[^0-9a-z]/g,"*"));
                          ***ook***45*
eg2:Alert.show(AGoGoIsAonameAGo‘Sfather".replace(/A[Go]/g,"_"));
_                       oGoIs_name_o‘sfather

\ 如果后面是小写字母,就是C转义序列,否则引用后面的字符。

"..." 匹配引号内的内容

/ 只有当有后面的表达式跟随时才匹配前面的表达式.

^ Flex正则表达式的第一个字符,它匹配行的开始;在方括号中用于否定,其它方面没有特殊情况
Alert.show("ABAEF\nABSD\nABFFD".replace(/^AB/gm,"你好"));
        你好AEF
       你好SD
       你好FFD

$  Flex正则表达式的最后一个字符,它匹配行的结尾-其他方面没有特殊情况。

<> 位于模式开头的尖括号内的一个或一列使那个模式只应用于指定的起始状态。

<<EOF>> 在flex中,这个特殊的模式<<EOF>>匹配文件的结尾。

\b  匹配一个单词边界,也就是指单词和空格间的位置。
\B  匹配非单词边界。
\cx 匹配由x指明的控制字符。
\d  匹配一个数字字符。等价于[0-9]。
\D  匹配一个非数字字符。等价于[^0-9]。
\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。
\w  匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W  匹配任何非单词字符。等价于’[^A-Za-z0-9_]’。
\xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。
\num匹配num,其中num是一个正整数。对所获取的匹配的引用。
\n  标识一个八进制转义值或一个后向引用。如果\n之前至少n个获取的子表达式,则n为后向引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm 标识一个八进制转义值或一个后向引用。如果\nm之前至少有isprecededbyatleastnm个获取得子表达式,则nm为后向引用。如果\nm之前至少有n个获取,
    则n为一个后跟文字m的后向引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。

2.语法延伸
^\d+$//匹配非负整数(正整数+0)
^[0-9]*[1-9][0-9]*$//匹配正整数
^((-\d+)|(0+))$//匹配非正整数(负整数+0)
^-[0-9]*[1-9][0-9]*$//匹配负整数
^-?\d+$//匹配整数
^\d+(\.\d+)?$//匹配非负浮点数(正浮点数+0)
^(([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+)?))$//匹配非正浮点数(负浮点数+0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$//匹配负浮点数
^(-?\d+)(\.\d+)?$//匹配浮点数
^[A-Za-z]+$//匹配由26个英文字母组成的字符串
^[A-Z]+$//匹配由26个英文字母的大写组成的字符串
^[a-z]+$//匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$//匹配由数字和26个英文字母组成的字符串
^\w+$//匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$//匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ 
^(\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])$//匹配ip 

匹配url匹配中文字符的Flex正则表达式:[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的Flex正则表达式:\n[\s|]*\r
匹配HTML标记的Flex正则表达式:/<(.*)>.*<\/>|<(.*)\/>/
匹配首尾空格的Flex正则表达式:(^\s*)|(\s*$)
匹配Email地址的Flex正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的Flex正则表达式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

时间: 2024-10-10 16:00:25

Flex程序设计(1)正则表达式的相关文章

Java程序设计之正则表达式

正则表达式平时在用到字符串处理的时候是比较常用的,个人觉得不需要刻意的去理解,用的话把文档拿出来查一下就好了,下面给个链接 http://www.php100.com/manual/Javascript/html/jsgrpRegExpSyntax.htm 这个是正则表达式的文档,用的时候可以去查查,下面用一个小例子熟悉一下,功能是输入一串字符串,输出里面的数字个数,代码比较简单: import java.util.Scanner; import java.util.regex.Matcher;

Flex 正则表达式 电话、邮箱验证

 一.常用验证 验证数字:^[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

【 .NET 面向对象程序设计进阶》】【 《.NET 面向对象编程基础》】【《正则表达式助手》】

<.NET 面向对象程序设计进阶> <.NET 面向对象程序设计进阶> <正则表达式助手>

Flex的正则表达式匹配速度与手工代码的比较

flex是一个词法分析器生成器,它是编译器和解释器编程人员的常用工具之一.flex的程序主要由一系列带有指令(称为动作代码)的正则表达式组成.在匹配输入时,flex会将所有的正则表达式翻译成确定性有穷自动机,这使得flex等词法分析器生成器生成的词法分析器匹配输入模式的效率非常高.当然,有人指责flex不够灵活,功能有限,很多问题都无法解决,比如Javascript.C++等语言中二义性的问题,实际上很多程序(比如Python的解释器)的词法分析器都是用的手工代码而不是flex自动生成的.这些都

[.net 面向对象程序设计进阶] (2) 正则表达式 (二)

[.net 面向对象程序设计进阶] (2) 正则表达式 (二) 上一节我们说到了C#使用正则表达式的几种方法(Replace,Match,Matches,IsMatch,Split等),还有正则表达式的几种元字符及其应用实例,这些都是学习正则表达式的基础.本节,我们继续深入学习表达式的几种复杂的用法. 1.分组 用小括号来指定子表达式(也叫做分组) 我们通过前一节的学习,知道了重复单个字符,只需要在字符后面加上限定符就可以了, 比如 a{5},如果要重复多个字符,就要使用小括号分组,然后在后面加

[.net 面向对象程序设计进阶] (2) 正则表达式(一)

[.net 面向对象程序设计进阶] (2) 正则表达式(一) 1.什么是正则表达式? 1.1正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简写为regex.regexp或RE),是计算机科学的一个重要概念.他是用一种数学算法来解决计算机程序中的文本检索.区配等问题. 1.2正则表达式语言支持  正则表达式其实与语言无关,在很多语言中都提供了支持 ,包括最常用的脚本语言Javascript.当然C#语言也毫不例外的提供了很好的支持.     正则表达式语

[.net 面向对象程序设计进阶] (4) 正则表达式 (三) 表达式助手

[.net 面向对象程序设计进阶] (2) 正则表达式(三) 表达式助手 上面两节对正则表达式的使用及.NET下使用正则表达式作了详细说明,本节主要搜集整理了常用的正则表达式提供参考. 此外为了使用方便,编写了一个<正则表达式助手>方便测试正则表达式. 1.正则表达式助手 1.1 软件概述 软件名称: <正则表达式助手> 版本: 1.0 最后更新日期: 2015/07/01 作者: YuBinfeng 运行环境: .NET Framework 4.6及以上(常用表达式功能,需要联网

Linux07--Shell程序设计03 通配符与正则表达式

通配符 通配符可用于代替字符. 通常地,星号“*”匹配0个或以上的字符,问号“?”匹配1个字符. 使用情况: 1.文件和目录 在CP/M.DOS.Microsoft Windows和类Unix操作系统中描述文件名(或路径)时,星号(*)匹配零个或多个任意字符.问号(?)匹配零个或不多于问号个数的任意字符.如:123??? 将匹配 1231 或 12313,但不会匹配 123991991.在Unix shell和Windows PowerShell中,方括号("["和"]&qu

Linux &nbsp; &nbsp; grep命令,正则表达式

grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression and Print out the line;全面查找正则表达式并将匹配到的行显示出来; 正则表达式 正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用;许多程序设计语言都支持利用正则表达式进行字符串操作; 主流的正则引擎又分为三类:DFA;传统型NFA;POSIX NFA; DFA