正则表达式 .*? 是什么意思啊?

 我来答
XYYF9798
2018-12-05 · TA获得超过26.9万个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:4.6万
展开全部

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。

正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

正则表达式的特点是:

1、灵活性、逻辑性和功能性非常强。

2、可以迅速地用极简单的方式达到字符串的复杂控制。

3、对于刚接触的人来说,比较晦涩难懂。

4、由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。


扩展资料:

应用实例

【1】正则表达式应用——替换指定内容到行尾

原始文本如下面两行

abc aaaaa

123 abc 444

希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”

即上面的文本最终替换为:

abc efg

123 abc efg

解决:

① 在替换对话框,查找内容里输入“abc.*”,替换内容输入为“abc efg”

② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮

其中,符号的含义如下:

“.” =匹配任意字符

“*” =匹配0次或更多

注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。

参考资料来源:百度百科--正则表达式

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小T爱旅行
2018-12-05 · 旅游业余爱好者,希望带大家云旅游。
小T爱旅行
采纳数:301 获赞数:193911

向TA提问 私信TA
展开全部

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。每一门计算机编程语言,都支持正则表达式。正则表达式能够进行数据隐藏,数据采集,数据过滤和数据验证。

扩展资料:

使用正则表达式创建正则对象方法如下:

1.字面量写法-以斜杠表示开始和结束; var regex = /xyz/。

2.内置构造函数生成-通过实例化得到对象;var regex = new RegExp('xyz')。

正则表达式里面字符串含义:

test(str) :判断字符串中是否具有指定模式的子串,返回结果是一个布尔类型的值;exec(str) :返回字符串中指定模式的子串,一次只能获取一个与之匹配的结果。

search(reg) :与indexOf非常类似,返回指定模式的子串在字符串首次出现的位置。

match(reg): 以数组的形式返回指定模式的字符串,可以返回所有匹配的结果。

replace(reg,'替换后的字符') :把指定模式的子串进行替换操作。

split(reg) :以指定模式分割字符串,返回结果为数组。

参考资料来源:百度百科—正则表达式

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
houzheng1976
2017-05-10 · 知道合伙人教育行家
houzheng1976
知道合伙人教育行家
采纳数:73995 获赞数:337182
无锡机电分院数学教研室主任 无锡机电分院文化课科研指导委员 无锡机电分院骨干教师负责人

向TA提问 私信TA
展开全部
简单的说就是,用一小段简单的各种字符的组合,即叫做 正则表达式,去实现复杂的:
字符串匹配,查找你到你所需要的内容,以便后期提取出来你所要的内容。
这个听起来很简单,但是很多现实的应用中,所要处理的字符串有千千万万种,各种复杂的字符,而且每个人的需求有无穷尽种,需要提取出的内容也是无穷多。而如果手动处理,写普通的if else语句去一点点判断字符串是否相等,则是无法实现的。
而用正则,就可以实现如此多的,繁杂的,极度复杂的,各种需求。

更多的内容,可以看看我所总结的:
正则表达式学习心得

再举几个实际的例子:
Notepad++正则表达式替换举例1:一次性替换多个文件的后缀
Notepad++正则表达式替换举例2:一次性替换多个路径
Notepad++正则表达式替换举例3:一次性替换多个listitem为sect4
Notepad++正则表达式替换举例4:给每一行都添加AddIcon的前缀
Notepad++正则表达式替换举例5:给book的标题和地址添加html代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
137332522
2013-08-11 · 超过30用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:61.6万
展开全部
你前面的感叹号是不是之前有个问号?

(?!pattern)
负向预查,在任何不匹配 pattern
的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配
"Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的
"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

(?:pattern)
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用
"或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries'
更简略的表达式。

?
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m})
后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?'
将匹配单个 "o",而 'o+' 将匹配所有 'o'。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
personball1
2011-06-10
知道答主
回答量:12
采纳率:0%
帮助的人:7万
展开全部
百度搜 正则表达式 直接看百度百科的条目
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式