DOS中的*及?用正则表达式中的什么替掉

原创 2007年10月12日 16:09:00
 
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
    嗯,第二个可以
    谢谢了
 

本文出自:冯立彬的博客



正则表达式RegExp

验证数字类型输入 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零...
  • Faremax
  • Faremax
  • 2017年01月05日 15:44
  • 554

CMD 中 findstr 正则表达式

findstr 命令中正则表达式的用法规则 字符串查找增强:findstr 在文件中寻找字符串。 FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] ...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2013年10月30日 09:26
  • 10105

使用正则表达式匹配省略号

package cn.edu.shu.util; import org.junit.Test; /** * * * ClassName MatchApostrophe * * ...
  • shijiebei2009
  • shijiebei2009
  • 2014年11月14日 20:57
  • 2173

批处理FINDSTR正则表达式用法实例

.findstr . 2.txt 或 Findstr "." 2.txt 从文件2.txt中查找任意字符,不包括空字符或空行 2.findstr .* 2.txt 或 findstr "....
  • xiaoding133
  • xiaoding133
  • 2014年09月15日 21:38
  • 1844

dos压缩解压命令

压缩 把c盘下的ha.txt压缩成ha.rar C:/>rar a ha.rar ha.txt 成功后会显示: RAR 3.62 版权 (C) 1993-2006 Alexander Rosha...
  • wanghandou
  • wanghandou
  • 2017年05月31日 18:17
  • 1618

Dos之For循环示例

:forNone Rem --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径) for %%i in (t*.*) do echo %%i Rem --显示d:/mydocument...
  • wejfoasdbsdg
  • wejfoasdbsdg
  • 2016年12月27日 00:18
  • 749

Dos下的edit命令

edit是dos下的一个文本编辑工具,接下来进行一点简单的介绍。 首先通过cmd进入dos命令行界面,当前默认的目录为C:\Users\administrator,我们首先通过cd命令切换到...
  • u013018721
  • u013018721
  • 2016年04月14日 19:38
  • 3116

汇编--学习笔记(四)-DOS功能调用

一、基本知识  DOS 功能调用是指汇编程序通过INT 21H软中断来调用DOS内部子程序完成特定的一系列操作的一种方法。  在学习和使用汇编语言过程中,用户不可能,也没有必要从最底层的第一个操作...
  • qq_28877125
  • qq_28877125
  • 2017年05月24日 23:08
  • 887

Route (DOS设置路由表)

//清空路由表 route delete * //删除指定网关(134.81.1.126)的路由 route delete 0.0.0.0 134.81.1.126 //删除指定网...
  • jclpc
  • jclpc
  • 2015年10月13日 13:18
  • 1121

java在dos中设置环境变量和重定向

一、我的dos命令行为: Rscript test3.R >> c:\t.txt 2 >$1 意思是:将test3.R脚本运行的输出流和错误流,全部重定向到t.txt文件中。。。这个>>表示追加,>表...
  • yezonggang
  • yezonggang
  • 2016年07月04日 22:34
  • 910
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DOS中的*及?用正则表达式中的什么替掉
举报原因:
原因补充:

(最多只允许输入30个字)