. 匹配除换行符"\n"外的任意单个字符。
[] 匹配括号中字符的任意一个。用"-"指示字符的范围。如果第一个字符是抑扬符号"^",那么它的含义变为匹配括号内字符以外援任意字符。
* 匹配前面正则表达式的零次或多次出现。
+ 匹配前面正则表达式的一次或多次出现。
? 匹配前面正则表达式的零次或多次出现。
{} 根据括号内的不同而不同。单个数字{n}意味着前面的模式重复n次,如:[A-Z]{3};{n1,n2}表示重复n1-n2次;{名字}指示用名字替换。
\ 如果后面是小写字母,就是C转义序列,否则引用后面的字符。
() 将一系列正则表达式归组。"*"、"+"和"{}"中的每个都直接作用于它左侧的表达式,而"|"通常影响左侧表达式和右侧的所有内容。
"..." 匹配引号内的内容
/ 只有当有后面的表达式跟随时才匹配前面的表达式.
^ 正则表达式的第一个字符,它匹配行的开始;在方括号中用于否定,其它方面没有特殊情况
$ 正则表达式的最后一个字符,它匹配行的结尾-其他方面没有特殊情况。
<> 位于模式开头的尖括号内的一个或一列使那个模式只应用于指定的起始状态。
<<EOF>>在flex中,这个特殊的模式<<EOF>>匹配文件的结尾。
除 .$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配。
但是其中并未注明这些字符应该匹配为什么字符。
为了方便自己以后查阅,也为了方便网友搜索我就写在这里了。
[Sipo]
点的转义:. ==> \\u002E
美元符号的转义:$ ==> \\u0024
乘方符号的转义:^ ==> \\u005E
左大括号的转义:{ ==> \\u007B
左方括号的转义:[ ==> \\u005B
左圆括号的转义:( ==> \\u0028
竖线的转义:| ==> \\u007C
右圆括号的转义:) ==> \\u0029
星号的转义:* ==> \\u002A
加号的转义:+ ==> \\u002B
问号的转义:? ==> \\u003F
反斜杠的转义:\ ==> \\u005C
Flex当中大家都知道有些标签restrict,这个属性用处很大的。对一些正则表达式都使用,跟以前的javascript是一样的。
下面是我封装FLex当中的textInput的restrict:
package common
{
import mx.controls.TextInput;
public class textInputRscdCode extends TextInput
{
public function textInputRscdCode()
{
this.restrict="0-9 a-z A-Z ~ ! # % \\^ & \\* ( ) \\- _ = + \\\\ | , . < > / ? ";
super();
}
}
}
表明在页面的输入框中只能让它输入这些东西。其他的不行。
分享到:
相关推荐
而词法分析生成器,如lex(或flex)和yacc(或bison)等工具,可以自动生成词法分析器代码,只需要提供正则表达式和相应的动作规则即可。 在实际应用中,正则表达式和词法分析经常结合使用,例如在文本处理工具(如...
以下是正则表达式的基本概念和关键语法点: 1. **正则表达式概述**:正则表达式(Regular Expression)是一种描述字符串模式的语言,它由一系列元字符和操作符组成,用于在文本中查找、替换或提取特定格式的字符串...
Python中的flexicon是一种轻量级、基于正则表达式的词法分析器框架,它为开发者提供了构建自己的词法分析器的工具。词法分析器,也称为扫描器或词法分析器,是编译器设计过程中的第一步,它将源代码分解成一系列有...
zarch是一个正则表达式引擎,它接受输入正则表达式和基于语法的压缩文本,并返回包含正则表达式匹配项的未压缩文本的每一行。 限制 跨行不匹配 不支持反转匹配选项 只有常规语言(如 RE2)→ 例如没有反向引用 没有...
总的来说,正则表达式是构建词法分析器的关键工具,它们用于定义和识别各种类型的单词,从而帮助编译器理解源代码的结构,并为后续的语法分析和代码生成做好准备。通过深入学习正则表达式和词法分析,开发者能更好地...
正则表达式是编程语言中用于模式匹配和文本解析的重要工具,它在词法分析阶段起着关键作用。词法分析是编译器设计过程中的第一步,它的主要任务是将源代码分解成一系列有意义的单元,称为单词符号或token。 3.1 ...
在实现过程中,可能会使用诸如lex或flex这样的词法分析工具,它们能够自动生成符合给定正则表达式的扫描程序代码。此外,还需要编写实验报告,详细描述设计过程、遇到的问题以及解决方案,同时附带程序源代码、编译...
2. **正则表达式支持**:flex支持多种正则表达式语法,包括PERL风格的正则表达式,这使得它具有广泛的适应性和灵活性。 3. **工作流程**:用户首先编写一个flex输入文件,定义一系列的模式和动作。flex将这个文件...
在lex(以及后来的flex)中,正则表达式用于定义词法规则,帮助识别源代码中的不同元素。下面将深入探讨正则表达式的基本概念及其在lex中的使用。 1. **基本正则表达式运算符** - **字符匹配**:单个字符可以直接...
在UNIX系统中,Flex 2.5.33是一个经典的版本,它提供了高效的正则表达式匹配功能,用于识别编程语言、配置文件等文本格式的结构。Flex通常与Yacc(Yet Another Compiler-Compiler)结合使用,Yacc负责语法分析,Flex...
2. **语法分析**:用Bison定义语法规则,这些规则描述了如何组合由Flex生成的token来形成有效的正则表达式。Bison会生成一个`.c`文件,其中包含一个解析器函数,该函数处理由词法分析器提供的token流。 3. **解析器...
flex从输入文件读取正则表达式,生成对应的C源代码,这个源代码实现了一个词法分析器,可以扫描输入并识别出符合规则的词法单元。 【编译器与解释器】编译器和解释器都是将高级编程语言转换为机器可执行代码的工具...
在实际编程中,我们经常使用如LEX或Flex这样的工具自动生成词法分析器,它们能够自动处理正则表达式的解析和DFA的构建。 在编译原理的这一部分,我们还会学习如何处理优先级和结合性,以及如何处理空白和注释的忽略...
通过这个实验,你可以深入理解词法分析的概念,熟悉Flex工具的使用,以及如何通过正则表达式处理文本数据。这不仅是系统软件开发的基础,也是学习编译原理和理解编程语言底层工作原理的重要环节。
1. **LEX 规则**:LEX 文件(.l 文件)是由一系列规则组成的,每个规则都包含一个正则表达式和相应的动作。正则表达式描述了词法规则,动作则是在匹配到这个规则时执行的C代码。例如,我们可以定义一个规则来识别...
2. 正则表达式:深入讲解Flex支持的正则表达式语法,包括字符类、重复、选择和分组等。 3. 规则优先级:解释如何处理模式冲突,以及使用`<<EOF>>`、`<state>`等控制流结构。 4. 输出文件:理解Flex生成的C代码结构,...
1. **正则表达式**:Flex的规则定义基于正则表达式,理解如何用正则表达式表示不同的词汇模式是使用Flex的基础。例如,`[0-9]+`匹配一个或多个数字,`.`匹配任何单个字符等。 2. **状态转移图**:Flex内部使用有限...
Flex接收一个包含正则表达式的规则文件(通常以`.l`为扩展名),然后生成C代码,这个C代码能够扫描输入文本并调用用户定义的动作。 Bison(以前称为yacc)则是用于生成语法分析器的工具,它基于LALR(1)解析算法。...
2. **Lex正则表达式**:正则表达式是lex的核心,用于描述输入流中的模式。它们在用户定义的规则中指定,lex通过确定有限自动机来识别这些表达式。正则表达式可以表示单个字符、字符类、重复次数等,提供了一种简洁且...