免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2104 | 回复: 11

正则表达式,关于*的疑问 [复制链接]

论坛徽章:
0
发表于 2007-01-06 15:51 |显示全部楼层
"There are around 30 to 35 people invited."

请问用
/^[A-Z][a-z]*3[0-5]/
可以找出这一行么?星号可以代表空格么?
出自<UNIX Shell范例精解(第三版)>第31页,这个例子我搞不明白,按原文在vi里也查不到这一行,请大家多多指教。

论坛徽章:
0
发表于 2007-01-06 15:56 |显示全部楼层
改成这样:

  1. /^"[A-Z][a-z] *3[0-5]/
  2. /^[A-Z"][a-z] *3[0-5]/
复制代码

[ 本帖最后由 Edengundam 于 2007-1-6 15:58 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2007-01-06 15:57 |显示全部楼层
原帖由 lazycat79 于 2007-1-6 15:51 发表
"There are around 30 to 35 people invited."

请问用
/^[A-Z][a-z]*3[0-5]/
可以找出这一行么?星号可以代表空格么?
出自<UNIX Shell范例精解(第三版)>第31页,这个例子我搞不明白,按原 ...

你说, 空格是字符么?!
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

论坛徽章:
0
发表于 2007-01-06 16:09 |显示全部楼层
原帖由 Edengundam 于 2007-1-6 15:56 发表
改成这样:

  1. /^"[A-Z][a-z] *3[0-5]/
  2. /^[A-Z"][a-z] *3[0-5]/
复制代码



引号没用的。引号里面的才是原文。看来正则表达式不能查找整行,只能查找单个词。

论坛徽章:
0
发表于 2007-01-06 16:11 |显示全部楼层
原帖由 寂寞烈火 于 2007-1-6 15:57 发表

你说, 空格是字符么?!
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1



书上写的*可以代表0或多个任意字符,包括空格。

论坛徽章:
0
发表于 2007-01-06 16:12 |显示全部楼层
原帖由 lazycat79 于 2007-1-6 16:09 发表



引号没用的。引号里面的才是原文。看来正则表达式不能查找整行,只能查找单个词。


我写晕了
[a-z]里面加一个空格

  1. /^[A-Z][a-z ]*3[0-5]/
复制代码


PS: 这书是水利出版社出的那个翻译版???

[ 本帖最后由 Edengundam 于 2007-1-6 16:14 编辑 ]

论坛徽章:
0
发表于 2007-01-06 16:22 |显示全部楼层
原帖由 Edengundam 于 2007-1-6 16:12 发表


我写晕了
[a-z]里面加一个空格

  1. /^[A-Z][a-z ]*3[0-5]/
复制代码


PS: 这书是水利出版社出的那个翻译版???


不,这是清华大学出版社出版的。

论坛徽章:
0
发表于 2007-01-06 16:41 |显示全部楼层
/^[A-Z][a-z ]*3[0-5]/

为什么这样就可以呢?[a-z ]这是代表什么呢?
在下刚学shell,通过百度和google搜索"/^[A-Z][a-z ]*3[0-5]/"也没找到什么解释,谢谢了。

论坛徽章:
0
发表于 2007-01-06 16:47 |显示全部楼层
原帖由 lazycat79 于 2007-1-6 16:11 发表



书上写的*可以代表0或多个任意字符,包括空格。

哎,有错误的书真是害人不浅阿

正确的理解见下:
正则里*如果被解释成量词(有时它会被解释成"*"字符),那么它将匹配0次或多次,而这个匹配匹配的是量词前的那个字符。另外"."匹配任意一个字符,所以就有了".*",".*"才是匹配0或多个任意字符。单独一个"*"是不能匹配任何内容的。

楼主发帖不看帖,本页就有两个可以借鉴的帖子

http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

而且楼主“看来正则表达式不能查找整行,只能查找单个词”的论断未免下的过于有趣了些~~

论坛徽章:
0
发表于 2007-01-07 02:47 |显示全部楼层
谢谢大家,我刚开始学习shell,以后还请多多指教。
我用
/^[A-Z][a-z]*3[0-5]/                   这个找不到那一行
/^[A-Z][a-z ]*3[0-5]/                  这个就可以。
只差在[a-z ]里面多一个空格,我就是不明白多的这个空格是怎么回事,怎么解释。在下愚钝,还请大家费神,解释一下好么?谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP