正则匹配文件后缀的问题

正则匹配文件后缀的问题,第1张

这个,你就不能直接截取最后四位然后和”.exe“比较么?

如果你执意要用正则:^.+\.exe$

".+"表示匹配至少一个任意字符,“\.”匹配点。亲测可用,注意匹配正则要忽略大小写 ignore case

问题一:什么是正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:

data1.dat

data2.dat

datax.dat

dataN.dat

如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataXYZ.dat

尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使骸对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

问题二:正则表达式是什么?有什么用? 简单的说就是,用一小段简单的各种字符的组合,即叫做 正则表达式,去实现复杂的:

字符串匹配,查找你到你所需要的内容,以便后期提取出来你所要的内容。

这个听起来很简单,但是很多现实的应用中,所要处理的字符串有千千万万种,各种复杂的字符,而且每个人的需求有无穷尽种,需要提取出的内容也是无穷多。而如果手动处理,写普通的if else语句去一点点判断字符串是否相等,则是无法实现的。

而用正则,就可以实现如此多的,繁杂的,极度复杂的,各种需求。

更多的内容,可以看看我所总结的:

正则表达式学习心得

再举几个实际的例子:

Notepad++正则表达式替换举例1:一次性替换多个文件的后缀

Notepad++正则表达式替换举例2:一次性替换多个路径

Notepad++正则表达式替换举例3:一次性替换多个listitem为sect4

Notepad++正则表达式替换举例4:给每一行都添加AddIcon的前缀

Notepad++正则表达式替换举例5:给book的标题和地址添加html代厂

(这里不给贴地址,请自行google搜标题,即可找到帖子地址)

问题三:正则表达式中的*是什么意思 *是一个限定符,用来修饰前一个字符或分组,限定匹配重复的数量为任意数量。

例如:

正则表达式 a* 可以匹配 a aa aaa aaaa aaaaaaa等等

正则表达式 (ab)* 可以匹配 ab abababab ababababababab等等

需要注意个是,*与+不同,+要求重复数量至少为1,*则可以为0,所以字符串为空也是可以匹配的。

以下是常用的限定符代码:

*重复零次或更多次

+重复一次或更多次

?重复零次或一次

{n}重复n次

{n,}重复n次或更多次

{n,m}重复n到m次

望采纳!

问题四:这个正则表达式是什么意思 ^是界定符,表示匹配字符串的开始;

[+-],中括号表示其内的内容都是符合要求的匹配,所以这个表示“+”或者-;

\d,[0-9]的简写形式,也就是匹配数字;

$也是界定符,表示匹配字符串的结束;

了解以上之后再来看问号(?)和星号(*):跟在一个模式内容后面的是量词,用来限定模式内容匹配的次数,例如我想要匹配最少1个、最多3个数字,例如4、20、123、226这样的,先前已经解释过单个数字可以用[0-9]或者\d表示,那么怎么表示最少匹配1次、最多3次呢?很简单,就在模式后面加上大括号配合次数表示量词,形式为{下限,上限},就是这样[0-9]{1,3}或者\d{1,3}。类似的,[0-9]{2}就表示只能匹配2个数字(多一个少一个都不行),[0-9]{2,}表示至少要有2个数字最多不限(注意大括号内的逗号),[0-9]{,2}表示最多有2个数字(注意大括号的逗号)。

针对经常用的量词,正则中也有简写,{0,1}简写就是问号(要么没有要么只有一次),{0,}简写就是星号(随便有没有也不限次数),{1,}简写就是加号(至少有一次)

问题五:正则表达式中 .*? 代表什么? 点 是任意字符

* 是取 0 至 无限长度

问号 是非贪婪模式。

何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:

.*?a

就是取前面任意长度的字符,到底一个 a 出现,匹配如下

[email protected] _qwerqweraljlkjlkjlkj

得到:[email protected] _qwerqwera 这部分,如果匹配不到后面的 a 字符,则匹配为空。

问题六:正则表达式<.*?>是什么意思? .匹配任意字符1个

*表示匹配重复上一个字符0到无限次

?表示匹配前一个字符0次或一次,跟在*表示非贪婪模式

默认是贪婪模式比如

会把所有字符吞下满足前面是就返回字符串

一次吃一个字符满足条件返回字符串

问题七:简单说下什么是正则表达式 简单地说就是一种格式化的匹配方式,与普通的查找方式相比,可以用一句话匹配出所有格式统一或类似的子串,而不用逐一列出每一种可能的情况,可以大幅降低程序的复杂度,提高程序的可靠性,减少处理遗漏。

问题八:正则表达式中“@”的作用是什么? C#中的字符串,如正则表达式中,有可能出现一些与C#语言相同的字符,比如\,会让编译器作为C#语言来识别,截断该字符串,并可能产生编译器错误.

为了防止这种情况的发生,在该字符串前加一个@就是告诉编译器,这些特殊字符是作为字符串中的一部分存在的,编译器就不会去编译它了.

比如路径c:\abc\d.txt将产生编译器错误,之前可以[email protected] :\abc\d.txt便得到其真实路径了.

这下明白了吧?

问题九:正则表达式的[],(),{}都指的是什么含义,有什么区别? [asd]或是[0-9a-zA-Z]

第一个表示匹配asd三个字母中任意一个字符,第一个表示匹配0-9,a-z大小写中的任意一个字符

()表示一个整体吧,比如asdf你想匹配他或是空,asdf?是错误的,问号只能匹配f的存在 ,而是使用(asdf)?,另外在一些替换中可用一些符号表示括号中匹配的内容,比如

/^$/

\1就代表(\w+)中匹配到的内容,这个正则可以匹配 ,开始和结束相同的标签

其他作用这一下也没想起了。。

{}代码匹配内容的数量如/^a{1,4}$/表示最少有一个a,最多4个a,或是/^a{2, }$/表示最少要有两个a,没上限的

问题十:.*([']+|(--)+).* 正则表达式是什么意思 .*([']+|(--)+).*

任意字符 '这两个字符至少处一个,且最少一次

或者 --至少出现一次,或者多次出现 再任意字符

比如

任意字符''''''--任意字符

任意字符--任意字符

任意字符''''''----任意字符

任意字符''----任意字符

任意字符----任意字符


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11468819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存