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
    嗯,第二个可以
    谢谢了
 

本文出自:冯立彬的博客



CMD 中 findstr 正则表达式

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

正则表达式

概念   一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用——很不幸,这篇文章也不能够改变这一点,不过,经过一点点练习之后我就开始觉得这些...
  • Young4Dream
  • Young4Dream
  • 2016-11-30 20:24:16
  • 203

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

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

Python 正则表达式替换特定字符为标志的字符串

Python 正则表达式替换特定字符为标志的字符串
  • guaguastd
  • guaguastd
  • 2014-08-20 11:28:16
  • 1106

Java 正则表达式 匹配括号中的数字

第一种:      String line = "+!!!0(100000000073);+!!!0(100000000071);";      String pattern ...
  • chuan_zhang_ak
  • chuan_zhang_ak
  • 2018-03-09 10:55:40
  • 64

<em>正则</em>表达式(很黄很暴力)

<em>正则</em>表达式 精通<em>正则</em>表达式需要的朋友可以下 ...U盘芯片<em>识别</em>!在也不怕买到假U盘了: 立即下载 ...<em>dos</em> 原始实用内存测试工具 立即下载 上传者: lintao...
  • 2018年04月08日 00:00

正则表达式攻击实例 Regular Expressions Denial of Service

实测数据如下: 30个a,耗时175毫秒 35个a,耗时950毫秒 40个a,耗时11242毫秒...
  • kewen303
  • kewen303
  • 2015-08-26 14:18:58
  • 1884

什么是正则表达式?在JavaScript中,如何应用正则表达式?

正则表达式(Regular Expression) 本身就是一个字符串,由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。正则表达式常用于在一段文本中搜索、匹配或替换特定形式的文本。...
  • u012396955
  • u012396955
  • 2016-12-29 17:09:59
  • 420

DIR命令怎么用通配符_DOS命令教程

  • 2013年08月26日 17:03
  • 8.84MB
  • 下载

正则表达式(1)(源于MSDN)

    正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集...
  • yanfei666666
  • yanfei666666
  • 2008-04-30 23:13:00
  • 341
收藏助手
不良信息举报
您举报文章:DOS中的*及?用正则表达式中的什么替掉
举报原因:
原因补充:

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