DOS中的*及?用正则表达式中的什么替掉
来源:互联网 发布:淘宝定金能退吗 编辑:程序博客网 时间:2024/05/17 02:15
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 ,结果会是这样的:
宝安-冯立彬(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
嗯,第二个可以
谢谢了
本文出自:冯立彬的博客
- DOS中的*及?用正则表达式中的什么替掉
- 正则表达式中的(?:exp)这样匹配表达式,有什么意义
- javascript中的正则表达式及应用
- 正则表达式中的特殊符号 及实例
- VIM中的正则表达式及替换命令
- VIM中的正则表达式及替换命令
- VIM中的正则表达式及替换命令
- PHP中的正则表达式及PCRE函数
- Oracle中的正则表达式(及函数)详解
- 正则表达式入门及python中的应用
- Lua中的正则表达式及源码分析
- VIM中的正则表达式及替换命令
- Oracle中的正则表达式(及函数)详解
- Oracle中的正则表达式(及函数)详解
- Oracle中的正则表达式(及函数)详解
- 正则表达式中的特殊符号 及实例
- C#中的正则表达式
- 正则表达式中的"?"
- 在NET Remoting中傳遞事件
- C/C++ 程序设计员应聘常见面试试题深入剖析
- 在VC的win32 Application 工程中,在改变对话框大小时,控件始终保持充满整个客户区的问题
- sql server 2000 游标用法
- 关于 DAL层
- DOS中的*及?用正则表达式中的什么替掉
- 兴致冲冲的要去买基金,结果却终场复盘了!
- 被女孩子冷落了,最适合看的20句话
- Linux那些事儿 之 戏说USB(26)设备的生命线(五)
- Java正则表达式
- 20071012听力原文
- C/C++高手的选择 (2)
- JS验证一-CheckBoxList是否选择
- C#插件构架实战