当前位置:首页 » 编程软件 » 编译原理注释的正则表达式怎么写

编译原理注释的正则表达式怎么写

发布时间: 2022-09-06 15:10:38

编译原理中,a和b的个数相等的正则表达式该怎么写

判定a和b的个数相等不能使用正则语言,需要使用上下文无关语言,下推自动机利用堆栈记忆和处理a和b的个数之间的关系。
所以没有能够描述你所要求的正则表达式。

⑵ 正则表达式怎么编写

<%
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches '建立变量。
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = patrn '设置模式。
regEx.IgnoreCase = True '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(strng) '执行搜索。
For Each Match in Matches '遍历匹配集合。
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'." & "<BR>"
Next
RegExpTest = RetStr
End Function
response.write RegExpTest("[ij]s.", "IS1 Js2 IS3 is4")
%>
在这个例子中,我们查找字符串中有无is或者js这两个词,忽略大小写。运行的结果如下:
Match found at position 0. Match Value is 'IS1'.
Match found at position 4. Match Value is 'Js2'.
Match found at position 8. Match Value is 'IS3'.
Match found at position 12. Match Value is 'is4'.
下面我们就介绍这三个对象和集合。
1、RegExp对象是最重要的一个对象,它有几个属性,其中:
○Global 属性,设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False。默认的设置为 False。
○IgnoreCase 属性,设置或返回一个Boolean值,指明模式搜索是否区分大小写。如果搜索是区分大小写的,则 IgnoreCase 属性为 False;否则为 True。缺省值为 False。
○Pattern 属性,设置或返回被搜索的正则表达式模式。必选项。总是一个 RegExp 对象变量。
2、Match 对象
匹配搜索的结果是存放在Match对象中,提供了对正则表达式匹配的只读属性的访问。 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的 Match 对象属性都是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度,以及找到匹配的索引位置等。
○FirstIndex 属性,返回在搜索字符串中匹配的位置。FirstIndex 属性使用从零起算的偏移量,该偏移量是相对于搜索字符串的起始位置而言的。换言之,字符串中的第一个字符被标识为字符 0
○Length 属性,返回在字符串搜索中找到的匹配的长度。
○Value 属性,返回在一个搜索字符串中找到的匹配的值或文本。
3、Matches 集合
正则表达式 Match 对象的集合。Matches 集合中包含若干独立的 Match 对象,只能使用 RegExp 对象的 Execute 方法来创建之。与独立的 Match 对象属性相同,Matches `集合的一个属性是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象都提供了与正则表达式匹配的字符串的访问入口、字符串的长度,以及标识匹配位置的索引。
学习了这三个对象和集合,如何应用于字符串的判断和替换呢?regExp对象的三个方法正好解决了这个问题,它们是Replace方法、Test方法和Execute方法。
1、Replace 方法
替换在正则表达式查找中找到的文本。我们还是先看个例子:下面的例子说明了 Replace 方法的用法。
<%
Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' 建立变量。
str1 = "The quick brown fox jumped over the lazy dog."
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替换。
End Function
Response.write ReplaceTest("fox", "cat") & "<BR>" ' 将 'fox' 替换为 'cat'。
Response.write ReplaceTest("(\S+)(\s+)(\S+)", "$3$2$1") ' 交换词对.
%>
2、Test 方法
对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。
如果找到了匹配的模式,Test方法返回True;否则返回False。下面的代码说明了Test 方法的用法。
<%
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
retVal = regEx.Test(strng) ' 执行搜索测试。
If retVal Then
RegExpTest = "找到一个或多个匹配。"
Else
RegExpTest = "未找到匹配。"
End If
End Function
Response.write RegExpTest("is.", "IS1 is2 IS3 is4")
%>
3、Execute 方法
对指定的字符串执行正则表达式搜索。正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。
Execute 方法返回一个 Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。

⑶ 正则表达式注释

当正则表达式过于复杂时,可以像普通的程序语言那样为正则表达式添加注释,以方便阅读。当设定了“x”修正符后,字符组(即][]内的内容)之外的所有空白字符会被忽略,#号和换行符之间的内容会被视为注释。多说无益,举个例子:

$text = '[email protected]';
$reg = '{
\b
#把捕获的地址保存到$1
(
\w[-.\w]* #username
@
[-\w]+(\.[-\w]+)*\.(com|e|info) #hostname
)
\b
}ix';
//$reg = '/\b(\w[-.\w]*@[-\w]+(\.[-\w]+)*\.(com|e|info))\b/ix';
$text = preg_replace($reg,'<a href="mailto:$1">$1</a>',$text);
var_mp($text);

运行一下,你会发现邮箱地址被替换成一个链接了。

⑷ 编译原理,正则表达式的低级基础问题

1、正则表达式:0(0|1)*1
2、由于不方便画图,最简DFA用状态表表示如下:
(1)开始状态S------输入0------->状态A
(2)状态A-------输入0-------->状态A
(3)状态A-------输入1-------->状态B(可接受状态)
(4)状态B-------输入0-------->状态A
(5)状态B-------输入1-------->状态B(可接受状态)

⑸ 编译原理正则表达式化简

你好,语言L={a}{a,b}∗({ϵ}∪({.,_}{a,b}{a,b}∗))L={a}{a,b}

({ϵ}∪({.,_}{a,b}{a,b}

))
这个语言是指,由a开头,后接任意长度的a、b串,然后再接空串(代表结束)。或者是接以.或_开头的,后接长度大于等于1的a、b串。

正则表达式(Regular Expression, RE)是一种用来描述正则语言的更紧凑的表示方法。

⑹ 正则表达式是什么该怎么用

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):

2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式应用——实例应用

  1. 验证用户名和密码:("^[a-zA-Z]w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;

2.验证电话号码:("^(d{3,4}-)d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;

3.验证手机号码:"^1[3|4|5|7|8][0-9]{9}$";

4.验证身份证号(15位):"d{14}[[0-9],0-9xX]",(18位):"d{17}[[0-9],0-9xX]";

5.验证Email地址:("^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$");

6.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$");

7.整数或者小数:^[0-9]+([.][0-9]+){0,1}$

8.只能输入数字:"^[0-9]*$"。

9.只能输入n位的数字:"^d{n}$"。

10.只能输入至少n位的数字:"^d{n,}$"。

⑺ 编译原理-用正则表达式表示下面的内容

(1)[a-z]
(2)^[24680]+$ 所有数字都为偶数 ^(?=[1-9])\d*[02468]$|^[02468]$ 所有偶数

(3)^(?=[a-zA-Z0-9]+).*@[^\.]+\.[a-z]+$

测试有效

⑻ 编译原理这个正规表达式是怎么写出来的呀

主要就是后面的两个条件:

  1. 至少2个1,

  2. 任何2个1之间有偶数个0

abd都不满足第2条

⑼ 正则表达式怎么写

[0-9A-Z][0-9A-Z]{0,i}\/[0-9A-Z]{0,14-i}[0-9A-Z]

不知道没有变量该怎么办啊,以前从来没有遇到过这种不定形式的规则(但是真的尽力了就作为一个参考的思路吧……当初被编译原理虐过所以万分同情楼主!

二楼的答案之所以【不可行】是由于“/"也参与了闭包,导致"/"零次或多次出现
QQA/2Q/23 如果输入也会是TRUE

“/”是否需要转义不清楚,默认当做需要转的考虑了

另,求这个软件的名称?很想知道~~多谢

⑽ 编译原理:c语言标识符的正则表达式

C语言中的标识符:
标识符由字母、数字、下划线“_”组成,并且首字母不能是数字.
java语言中的标识符:
标识符由字母、数字、下划线“_”、美元符号“$”组成,并且首字母不能是数字。
一般标识符由字母、数字、下划线“_”组成
如果只能以下划线、英文字母开头,后跟单词字符的话:
^[A-Za-z_][A-Za-z0-9_]*$

热点内容
安卓版优酷为什么没有极清4k 发布:2025-03-20 12:58:10 浏览:460
服务器硬盘怎么装 发布:2025-03-20 12:57:13 浏览:630
fsb文件解压 发布:2025-03-20 12:31:34 浏览:136
3d源码棋牌 发布:2025-03-20 12:30:31 浏览:238
什么叫服务器访问限制 发布:2025-03-20 12:23:53 浏览:945
机架式服务器如何拆装 发布:2025-03-20 12:23:53 浏览:23
交叉编译器缺少库 发布:2025-03-20 12:20:12 浏览:716
tt语音新人签到领皮肤脚本 发布:2025-03-20 12:20:05 浏览:693
编程招标网 发布:2025-03-20 12:19:28 浏览:1001
风险防控平台服务器地址是什么 发布:2025-03-20 11:59:04 浏览:232