免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: forestlin
打印 上一主题 下一主题

/^[A-Za-z]*[^;]/ 是什么意思2 [复制链接]

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
11 [报告]
发表于 2006-08-25 15:54 |只看该作者
原帖由 Edengundam 于 2006-8-25 15:48 发表



你好, 请问这样分析对吗??

1. 如果不以[a-zA-Z]开头, 且不以;开头, 匹配这个表达式.
2. 如果不以[a-zA-Z]开头, 且以;开头, 则不匹配.
3. 如果以[a-zA-Z]开头, 则都可以匹配.

结论没错。
正则一两句话说不明白(可能我的表达太糟糕了),[a-zA-Z]*[^;]是一个简单(或者叫普通)的正则。建议看看*的作用。

论坛徽章:
0
12 [报告]
发表于 2006-08-25 15:56 |只看该作者
原帖由 Edengundam 于 2006-8-25 15:48 发表



你好, 请问这样分析对吗??

1. 如果不以[a-zA-Z]开头, 且不以;开头, 匹配这个表达式.
2. 如果不以[a-zA-Z]开头, 且以;开头, 则不匹配.
3. 如果以[a-zA-Z]开头, 则都可以匹配.


呵呵,你的结论跟一楼的是一样的

论坛徽章:
0
13 [报告]
发表于 2006-08-25 16:04 |只看该作者
原帖由 r2007 于 2006-8-25 15:54 发表

结论没错。
正则一两句话说不明白(可能我的表达太糟糕了),[a-zA-Z]*[^;]是一个简单(或者叫普通)的正则。建议看看*的作用。



*: zeor or more times....这个我很明白...毕竟曾经的形式语言不是白学了.

我想知道, 您建议的分析方法: )

我理解为: 最机械的办法, 正则语言可以构建自动机进行分析, 分析过程中只要发生匹配了, 自然忽略剩余条件...(不知道精华区的正则表达式贪婪性是不是说这个东西哈, 还没有看这个文章 )

因此对不同输入, 都会划分到不同等价类进行处理的...

这就是我分析的笨办法....

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
14 [报告]
发表于 2006-08-25 16:08 |只看该作者
比如
H4561fdafkdha
开头  匹配 ^
0个字符  匹配  [a-zA-Z]*
H 匹配 [^;]

同理所有不以;开头的都可按上述方法匹配

论坛徽章:
0
15 [报告]
发表于 2006-08-25 16:12 |只看该作者
恩, 但我以为: H4561fdafkdha因为H满足[a-zA-Z]*所以不需要下一步处理, 自然匹配了;
而类似4561fdafkdha是不满足[a-zA-Z]*而满足[^;]所以匹配;
最后;fdsdfk343是既不满足[a-zA-Z]*也满足[^;]....

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
16 [报告]
发表于 2006-08-25 16:17 |只看该作者
原帖由 Edengundam 于 2006-8-25 16:12 发表
恩, 但我以为: H4561fdafkdha因为H满足[a-zA-Z]*所以不需要下一步处理, 自然匹配了;
而类似4561fdafkdha是不满足[a-zA-Z]*而满足[^;]所以匹配;
最后;fdsdfk343是既不满足[a-zA-Z]*也满足[^;]....

具体的分析还和贪婪性有点儿关系,但不会影响是否匹配的问题。
说来就罗嗦了,建议看看一些正则的资料。

论坛徽章:
0
17 [报告]
发表于 2006-08-26 12:20 |只看该作者
定位符^在[]里面跟外面意义是不同的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
18 [报告]
发表于 2006-08-28 00:52 |只看该作者
原帖由 Edengundam 于 2006-8-25 15:48 发表



你好, 请问这样分析对吗??

1. 如果不以[a-zA-Z]开头, 且不以;开头, 匹配这个表达式.
2. 如果不以[a-zA-Z]开头, 且以;开头, 则不匹配.
3. 如果以[a-zA-Z]开头, 则都可以匹配.


恩? 這樣講, 好像就是說: 只要不以 ; 開頭就都行!  ^_^

论坛徽章:
0
19 [报告]
发表于 2006-08-28 10:06 |只看该作者
只要不是;开头的,都可以用 ^[a-zA-Z]*来匹配空串,然后让 [^;]匹配后面跟着的字符。

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
20 [报告]
发表于 2006-08-28 10:55 |只看该作者
原帖由 wd 于 2006-8-28 10:06 发表
只要不是;开头的,都可以用 ^[a-zA-Z]*来匹配空串,然后让 [^;]匹配后面跟着的字符。

我的分析同楼上。如有不同的欢迎一起探讨。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP