1楼:纯不纯你妹
.是任意字符。,.?是任意字符后面有一个字符。 .* 是任意衣服后面有多个字符
例如 abc..567 .?匹配(a b c . . 6 7 7)。 .*匹配(abc..567)
2楼:匿名用户
? 是 单字符匹配
* 是 多字符匹配
.? 是说 . 后面 跟着任意字符
.* 是说 . 后面 跟着 任意个数字符.,0个,1个,2个......
3楼:匿名用户
\u5f00\u59cb\u7684\u4e16\u754c
正则表达式里面 .* 和 .*? 有什么区别?
4楼:
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。
表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
\s 匹配任何空白非打印字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 unicode 正则表达式会匹配全角空格符。
\s 匹配任何非空白非打印字符。等价于 [^ \f\n\r\t\v]。
*限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
比如:使用/<.*>/匹配的结果为:h1>chapter 1 - 介绍正则表达式使用/<.*?>/匹配结果为:h1。
拓展知识
正则表达式特殊字符及其含义
5楼:匿名用户
\s匹配任意的空白符(包括空格,制表符(tab),换行符,中文全角空格)
\s则是任意不是空白符的字符
?涉及到贪婪模式
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.
*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。
有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.
*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:
a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)
6楼:匿名用户
\w 等价于 [a-za-z0-9_]
\w 等价于 [^a-za-z0-9_],就是排除了\w的情况,也就是说它们表示的意思相反
7楼:匿名用户
简单的说就是,用一小段简单的各种字符的组合,即叫做 正则表达式,去实现复杂的:
字符串匹配,查找你到你所需要的内容,以便后期提取出来你所要的内容。
这个听起来很简单,但是很多现实的应用中,所要处理的字符串有千千万万种,各种复杂的字符,而且每个人的需求有无穷尽种,需要提取出的内容也是无穷多。而如果手动处理,写普通的if else语句去一点点判断字符串是否相等,则是无法实现的。
而用正则,就可以实现如此多的,繁杂的,极度复杂的,各种需求。
更多的内容,可以看看我所总结的:
正则表达式学习心得
再举几个实际的例子:
notepad++正则表达式替换举例1:一次性替换多个文件的后缀
notepad++正则表达式替换举例2:一次性替换多个路径
notepad++正则表达式替换举例3:一次性替换多个listitem为sect4
notepad++正则表达式替换举例4:给每一行都添加addicon的前缀
notepad++正则表达式替换举例5:给book的标题和地址添加html**
正则表达式中的 .*? 或 .*+ 是什么意思? 20
8楼:四舍**入
一、*表示匹配前面的字符
0个或多个
二、+表示前面的字符1个或多个
三、?表示放在其他字符后面表示前面的字符可以有,也可以没有,或者放在*、+后面表示匹配尽可能少的字符
例如:字符串fooooo,正则fo*和fo+会匹配整个字符串,fo+? 匹配fo,
fo*? 匹配f
四、*+没有这样的用法,除非是匹配星号本身,即: \*+ 表示一个或多个星号
9楼:完旋真向
*?是惰性匹配,就是匹配尽可能少的次数。
.*?的意思是匹配任意字符,尽可能少的次数。
比如:abaaaaabb
用a.*b去匹配,会匹配到abaaaaabb全部,应为正则默认贪婪匹配,找到第一个b之后,发现后面还有b,会一直匹配下去。
所以可以使用贪婪匹配,a.*?b
这样的话,
只会匹配尽可能少的次数
就会匹配到
ab还有问题hi我。
10楼:徐_赫
后边多一个?表示懒惰模式。
必须跟在*或者+后边用
如:如果用正则匹配src中内容非懒惰模式匹配src=".*"
匹配结果是:src="test.jpg" width="60px" height="80px"
意思是从="往后匹配,直到最后一个"匹配结束懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷
11楼:计兴腾訾峰
.匹配任意字符1个
*表示匹配重复上一个字符0到无限次
?表示匹配前一个字符0次或一次,跟在*表示非贪婪模式默认是贪婪模式比如
<.*>会把所有字符吞下满足前面是《后面是》就返回字符串<.*?>一次吃一个字符满足条件返回字符串
12楼:乐观小山
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
举例介绍:
如:懒惰模式正则:
src=".*?"
结果:src="test.jpg"
扩展资料正则表达式特殊字符及其含义:
1、\cx
匹配由x指明的控制字符。例如, \cm 匹配一个 control-m 或回车符。x 的值必须为 a-z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
2、\f
匹配一个换页符。等价于 \x0c 和 \cl。
3、\n
匹配一个换行符。等价于 \x0a 和 \cj。
4、\r
匹配一个回车符。等价于 \x0d 和 \cm。
5、\s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
6、\s
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
7、\t
匹配一个制表符。等价于 \x09 和 \ci。
8、\v
匹配一个垂直制表符。等价于 \x0b 和 \ck。
13楼:罗美媛度子
\这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符。
.匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r
t,但是不匹配root。
14楼:帛惜文谬寰
[a-za-z]\\d\\d(\\d|\\d)?
[a-za-z]第一位必须是字母;
d后面跟3个数字;
d可以是一个数字,也可以是两个数字;
(\\d|\\d)两个数字加一个符号"|"加3个数字?最后再跟一个字符
15楼:匿名用户
.表示任意字符
*:修饰前面的字符,0到多
+:修饰前面的字符,1到多
16楼:许舒南灵秋
*——表示匹配前面的字符0个或多个
+——表示前面的字符1个或多个
?——(1)放在其他字符后面表示前面的字符可以有,也可以没有(2)放在*、+后面表示匹配尽可能少的字符例如:字符串fooooo,正则fo*和fo+会匹配整个字符串,fo+?
匹配fo,
fo*?
匹配f*+没有这样的用法,除非是匹配星号本身,即:
\*+表示一个或多个星号
正则表达式中“.*?”代表什么?
17楼:匿名用户
点代表的是任意字符。
* 代表的是取 0 至 无限长度
问号代表的是非贪婪模式。
三个链接在一起是取尽量少的任意字符,一般不会这么单独写。
他大多用在:.*?a
就是取前面任意长度的字符,到底一个 a 出现,匹配如下q@wer_qwerqweraljlkjlkjlkj,
得到:q@wer_qwerqwera 这部分,如果匹配不到后面的 a 字符,则匹配为空。
正则表达式,又称规则表达式,是计算机科学的一个概念,这个概念最初是由unix中的工具软件普及开的。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要分为dfa、nfa两大类。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在perl中就内建了一个功能强大的正则表达式引擎。
正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
18楼:p为梦停留
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
它是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
19楼:阿炎的情感小屋
正则表达式,又称规则表达式。是计算机科学的一个概念。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在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);//返回结果为。
3、替换
即将字符串中符合规则的字符替换成指定字符,如:
string str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。
str.replaceall("\\d","#");//表示将连续出现三个或三个以上的数字替换成“#”。
易语言正则到标签问题,易语言 正则表达式 如何去除html标签的样式
1楼 灰 豆 版本 2 程序集 窗口程序集 启动窗口 子程序 按钮1 被单击 局部变量 正则 正则表达式类 使用精易模块 局部变量 文本 文本型 文本 180324073 正则 创建 d 文本 标签1 标题 正则 取子匹配文本 1 1 易语言 正则表达式 如何去除html标签的样式 2楼 紫薇参星 ...
易语言里怎么用正则表达式匹配不知道几位数的数字
1楼 历史的掩映 若 以内 包含0位数字 d 若 以内 至少是1位 d 只是为判断字符串能否转的话,个人认为直接判断itoa atoi s 是否和与去掉了原来的s两头不影响数值的0的结果相同即可。意思就是先转成整数试试,然后再把这整数转回字符串,与原来的串比较,当然也要考虑少数你认可的特殊情况。 易...
易语言里怎么用正则表达式匹配不知道几位数的数字呢
1楼 历史的掩映 若 以内 包含0位数字 d 若 以内 至少是1位 d 只是为判断字符串能否转的话,个人认为直接判断itoa atoi s 是否和与去掉了原来的s两头不影响数值的0的结果相同即可。意思就是先转成整数试试,然后再把这整数转回字符串,与原来的串比较,当然也要考虑少数你认可的特殊情况。 2...