正则 什么是正则表达式
老铁们,大家好,相信还有很多朋友对于正则和什么是正则表达式的相关问题不太懂,没关系,今天就由我来为大家分享分享正则以及什么是正则表达式的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
什么是正则表达式
正则表达式,又称规则表达式。是计算机科学的一个概念。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
扩展资料
正则表达式的作用:
1、匹配
检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:
String str="abc";
String reg="[a-zA-Z]\\d?";//次表达式表示字符串的第一位只能是字母,第二位只能是数字或没有boolean flag=str.matches(reg);//返回结果为true。
2、切割
所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:
String str="zhangsan,lishi,wangwu"。
String reg=",";//表示以逗号作为切割符。
String[] arr=str.split(reg);//返回结果为{“zhangsan”,"lisi","wangwu}。
3、替换
即将字符串中符合规则的字符替换成指定字符,如:
String str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。
str.replaceAll("\\d{3,}","#");//表示将连续出现三个或三个以上的数字替换成“#”。
参考资料来源:百度百科-正则表达式
正则是什么意思
正则 [zhèng zé]
正其礼仪法则。
汉张衡《东京赋》:“辩方位而正则,五精帅而来摧。”
正规;常规。
《西游补》第一回:“七龄孔子,帐中鸣蟋蟀之音;二八曾参,阶下拜荔枝之献。胡为乎不讲此正则也?”茅盾《追求》八:“一个月前,我还想到五年六年甚至十年以后的我,还有一般人所谓想好好活下去的正则的思想。”
犹正宗。
郑振铎《插图本中国文学史》第四九章一:“差不多要在元末明初的时候,我们才见到正则的南曲作家的出现。”参见“正宗”。
正则 [zhèng zé]
正当的法则。
《西游补.第一回》:「二尺曾参,阶下拜荔枝之献。胡为乎不讲此正则也?」改正法则。《文选.张衡.东京赋》:「辨方位而正则,五精帅而来催。」
正则表达式是什么
问题一:什么是正则表达式如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。
请回想一下在硬盘上是如何查找文件的。您肯定会使用?和*字符来帮助查找您正寻找的文件。?字符匹配文件名中的单个字符,而*则匹配一个或多个字符。一个如'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,没上限的
问题十:.*([';]+|(--)+).*正则表达式是什么意思.*([';]+|(--)+).*
任意字符';这两个字符至少处一个,且最少一次
或者--至少出现一次,或者多次出现再任意字符
比如
任意字符''''''--任意字符
任意字符;;;;;;--任意字符
任意字符''''''----任意字符
任意字符''----任意字符
任意字符;----任意字符
文章到此结束,希望我们对于正则和什么是正则表达式的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。