分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
DOS中的*及?用正则表达式中的什么替掉
答案:正则中的*就相当于DOS中的*
正则中的.{0,1}相当于DOS中的?
感谢群里的阿牛,这是我在群里遇到的第二个乐于助人的人。
以下是讨论记录:
宝安-冯立彬(56553655) 15:33:29
请教一个正则表达式,我想实现一个类传DOS中的查找
我看了一下,用正则表达式中的+基本上就和DOS中的*号差不多
可是DOS中的?问号,就不知道用那个了
我看了一下正则表达式中?跟那个不一样,
用/S也不行,因为它表是一个或者多个
如我想实现这样的功能:dir a?.jpg
怎么样把a?.jpg去正则表达式来写
罗湖-阿牛(13210345) 15:35:16
问号在正则有两种意思,一种在非贪婪中起作用,一个是表示前面的条件出现0次或1次
罗湖-阿牛(13210345) 15:35:44
在dos中?表示一个字符,你在正则用/w来表示,或者干脆用.来表示
罗湖-阿牛(13210345) 15:36:00
.表示所有字符,不过/w只能代表非符号字符
宝安-冯立彬(56553655) 15:36:28
嗯,这个我知道,
用.?
那我的文件经过正则表达式更改后就是:a..jpg了
这个能行吗
宝安-冯立彬(56553655) 15:36:53
对用/w应该可以
罗湖-阿牛(13210345) 15:37:23
至少应该写成a./.jpg
罗湖-阿牛(13210345) 15:37:40
那个扩展名的.要转义
罗湖-阿牛(13210345) 15:37:44
详细你看着办了
宝安-冯立彬(56553655) 15:37:57
/w不行,因为还有空格呢
宝安-冯立彬(56553655) 15:38:04
不是空格,就是空字符
罗湖-阿牛(13210345) 15:38:55
如果是dos命令: a*.jpg 这里的*还代表任意个字符
你应该写成a.*/.jpg
宝安-冯立彬(56553655) 15:39:13
*我用正则的+替换了
罗湖-阿牛(13210345) 15:40:16
+表示1次或多次 *表示0次或多次,相对来说*与dos的*作用更近些
罗湖-阿牛(13210345) 15:40:50
/w应该是不包括空字符的,只包括数字与字母
罗湖-阿牛(13210345) 15:40:58
和下划线
宝安-冯立彬(56553655) 15:41:26
这是关于他们的示例:
/fo+/
因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或
者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/
因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
宝安-冯立彬(56553655) 15:42:11
如果用*不好,因为如果我是ab*.jpg
那么我直接用正则表达式,如果有文件a.jpg也会被例出来
罗湖-阿牛(13210345) 15:43:06
你这说的应该不是正则
fo+表示f后面跟着N个o,像foo能匹配到foo,但foa就只能匹配到fo,不能匹配到后面那个字母a
罗湖-阿牛(13210345) 15:43:19
*作用差不多,只是1次或多次区别而已
宝安-冯立彬(56553655) 15:43:39
我做一个测试
罗湖-阿牛(13210345) 15:44:06
在dos里,你执行dir a*.jpg是列出a.jpg的,不信你试下
宝安-冯立彬(56553655) 15:46:00
但如果有ab.jpg ,结果会是这样的:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/fenglibing/a3088d26029e4ac2a905219124316750.jpg)
宝安-冯立彬(56553655) 15:46:15
也会显示出来的
罗湖-阿牛(13210345) 15:47:31
你直接说你想干什么吧,我给你一个正则算了
罗湖-阿牛(13210345) 15:47:41
你对*理解不够,回去看下书
罗湖-阿牛(13210345) 15:48:37
dos里的*在正则要用.*来代替
宝安-冯立彬(56553655) 15:48:37
我试了一下,正则中的*比+更接近于DOS中的*
因为如果我用正则中的+替代dos中的*那么有的文件 就显示不出来
如我的命令是 a*.jpg
但是如果我有a1.jpg就显示不出来
宝安-冯立彬(56553655) 15:48:58
OK,这个我知道了
宝安-冯立彬(56553655) 15:49:06
不过,还得回得那个?
宝安-冯立彬(56553655) 15:49:59
dir a?.jpg
会显示:
a.jpg
a1.jpg
a2.jpg等等
罗湖-阿牛(13210345) 15:51:42
dos里的?在正则用一个.代替
罗湖-阿牛(13210345) 15:51:57
或者用.{0,1}来替
罗湖-阿牛(13210345) 15:53:43
后面那个答案更接近些
宝安-冯立彬(56553655) 15:53:58
嗯,第二个可以
谢谢了
本文出自:冯立彬的博客
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/2e19ffb3303a490d20ea5d00dd397156.gif)