正则表达式([\s\S]*?)是什么意思?

如题所述

第1个回答  2018-12-05

正则表达式,又称规则表达式,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

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

原始文本如下面两行

abc aaaaa

123 abc 444

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

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

abc efg

123 abc efg

解决:

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

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

其中,符号的含义如下:

“.” =匹配任意字符

“*” =匹配0次或更多

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

扩展资料:

正则表达式的特点是:

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

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

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

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

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

第2个回答  2018-12-05

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

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

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

扩展资料

正则表达式应用——实例应用

1.验证用户名和密码:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;

2.验证电话号码:("^(\d{3,4}-)\d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;

3.验证手机号码:"^1[3|4|5|7|8][0-9]{9}$";

4.验证身份证号(15位):"\d{14}[[0-9],0-9xX]",(18位):"\d{17}(\d|X|x)";

5.验证Email地址:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");

6.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$");

7.整数或者小数:^[0-9]+([.][0-9]+){0,1}$

8.只能输入数字:"^[0-9]*$"。

9.只能输入n位的数字:"^\d{n}$"。

参考资料:

百度百科-正则表达式

第3个回答  2018-12-05

正则表达式,又称规则表达式。(英语: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次或更多

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

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

第4个回答  2018-12-05

正则表达式(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) :以指定模式分割字符串,返回结果为数组。

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

第5个回答  2006-03-16
在正则表达式中,有一种意义特殊的构造,即元字符。目前已知的元字符有很多,如 *、?、+ 和 {} 字符。其他字符在正则表达式语言中都有特殊的含义。这些字符包括:$ ^ . [ ( | ) ] 和 \。

.(句点或点)元字符是最简单但最常用的一个字符。它可匹配任何单字符。如果要指定某些模式可包含任意组合的字符,使用句点非常有用,但一定要在特定长度范围内。此外,我们知道表达式将对包含在较长字符串中的所有模式进行匹配,假如只需要精确匹配模式,又该怎么办?这在验证方案中经常出现,例如,要确保用户输入的邮政编码或电话号码的格式正确。使用 ^ 元字符可指定字符串(或行)的开始,使用 $ 元字符可指定字符串(或行)的结束。通过将这些字符添加到模式的开始和结束处,可强制模式仅匹配精确匹配的输入字符串。如果 ^ 元字符用在方括号 [ ] 指定的字符类的开头,也有特殊的含义。具体内容见下。

\ (反斜杠)元字符既可根据特殊含义“转义”字符,也可指定预定义集合元字符的实例。同样,具体内容见下。为了在正则表达式中包括文字样式的元字符,必须使用反斜杠进行“转义”。例如,如果要匹配以“c:\”开始的字符串,可使用:^c:\\。注意,要使用 ^ 元字符指出字符串必须以此模式作为开始,然后用反斜杠元字符转义文字反斜杠。

|(管道)元字符用于交替指定,特别用于在模式中指定“此或彼”。例如,a|b 将匹配包含“a”或“b”的任何输入内容,这与字符类 [ab] 非常类似。

最后,括号 ( ) 用于给模式分组。它允许使用限定符让一个完整模式出现多次。为了便于阅读,或分开匹配特定的输入部分,可能允许分析或重新设置格式。

使用目前提供的工具可以完成很多工作。但是,要使用 [0-9] 表示模式中的每个数值数字,或(更糟)使用 [0-9a-zA-Z]表示任何字母数字字符,还有一段相当漫长的过程。为了减轻处理这些常用但冗长模式的痛苦,事先定义了预定义元字符集合。正则表达式的不同实现定义了不同的预定义元字符集合。这些预定义元字符的标准语法是,在反斜杠 \ 后跟一个或多个字符。多数预定义元字符只有一个字符,它们的使用很容易,是冗长字符类的理想替代字符。以下是两个示例:\d 匹配所有数值数字,\w 匹配所有单词字符(字母数字加下划线)。例外情况是一些特定字符代码匹配,此时必须指定所匹配字符的地址,如 \u000D 将匹配 Unicode 回车符。下面列出一些最常用的字符类及其等效的元字符。(以上内容取自.net正则表达式)
元字符 说明与等效字符类
\a 匹配铃声(警报);\u0007
\b 匹配字符类外的字边界,它匹配退格字符,\u0008
\t 匹配制表符,\u0009
\r 匹配回车符,\u000D
\w 匹配垂直制表符,\u000B
\f 匹配换页符,\u000C
\n 匹配新行,\u000A
\e 匹配转义符,\u001B
\040 匹配 3 位 8 进制 ASCII 字符。\040 表示空格(十进制数 32)。
\x20 使用 2 位 16 进制数匹配 ASCII 字符。此例中,\x2- 表示空格。
\cC 匹配 ASCII 控制字符,此例中是 ctrl-C。
\u0020 使用 4 位 16 进制数匹配 Unicode 字符。此例中 \u0020 是空格。
\* 不代表预定义字符类的任意字符都只作为该字符本身对待。因此,\* 等同于 \x2A(是文字 *,不是 * 元字符)。
\p{name} 匹配已命名字符类“name”中的任意字符。支持名称是 Unicode 组和块范围。例如,Ll、Nd、Z、IsGreek、IsBoxDrawing 和 Sc(货币)。
\p{name} 匹配已命名字符类“name”中不包括的文本。
\w 匹配任意单词字符。对于非 Unicode 和 ECMAScript 实现,这等同于 [a-zA-Z_0-9]。在 Unicode 类别中,这等同于 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。
\W \w 的否定,等效于 ECMAScript 兼容集合 [^a-zA-Z_0-9] 或 Unicode 字符类别 [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。
\s 匹配任意空白区域字符。等效于 Unicode 字符类 [\f\n\r\t\v\x85\p{Z}]。如果使用 ECMAScript 选项指定 ECMAScript 兼容方式,\s 等效于 [ \f\n\r\t\v] (请注意前导空格)。
\S 匹配任意非空白区域字符。等效于 Unicode 字符类别 [^\f\n\r\t\v\x85\p{Z}]。如果使用 ECMAScript 选项指定 ECMAScript 兼容方式,\S 等效于 [^ \f\n\r\t\v] (请注意 ^ 后的空格)。
\d 匹配任意十进制数字。在 ECMAScript 方式下,等效于 Unicode 的 [\p{Nd}]、非 Unicode 的 [0-9]。
\D 匹配任意非十进制数字。在 ECMAScript 方式下,等效于 Unicode 的 [\p{Nd}]、非 Unicode 的 [^0-9]。

正则表达式([\\s\\S]*?)是什么意思?
这个正则表达式是用来匹配空格符的,用来检查你的文本里面的空格

正则表达式([\\s\\S]*?)是什么意思?
这个正则表达式是用来匹配空格符的,用来检查你的文本里面的空格 追问: 只是匹配空格吗?像如果是([\\s\\S]*?)与[\\s\\S]*?匹配的字符结果是否一样?就是想问下小括号的作用是? 回答: 小括号有两个作用一个是把里面的内容作为一个整体来看,另外一个作用就是可以用来匹配子表达式 追问: 就像数...

正则表达式中,[\\s\\S]* 是什么意思?“[ ]”不是范围描述符吗?
[\\s\\S]*是完全通配的意思;“[ ]”是范围描述符。\\s是指空白,包括空格、换行、tab缩进等所有的空白,而\\S刚好相反,这样一正一反下来,就表示所有的字符,完全的,一字不漏的。另外,[]这个符号,表示在它里面包含的单个字符不限顺序的出现,比如:[ace]*---这表示,只要出现a\/c\/e这三个任...

([\\s\\S]*?)正则表达式写法
[\\s\\S] 意思是匹配所有 空白字符+非空白字符 , 说白了也就是全部字符都可以 意思是0个或多个,加个问号为尽量捕捉到更少的字符串, 也就是限定了不把后边的<\/span>也给捕捉进去9 () 括号里面是组, 可以提取组内的内容,<span id="ctext">([\\s\\S]*?)<\/span> 意思就是匹配所有在两个<...

正则表达式[\\s\\S]*?怎么解释?
\\s 空白符 \\S 非空白符 [\\s\\S]任意字符 [\\s\\S]* 0个到任意多个字符 [\\s\\S]*? 0个字符,匹配任何字符前的位置。正则表达式中 \\s代表一个空白字符(可能是空格、制表符、其他空白)。\\\\s代表查找两个字符\\和s,因为\\在正则中有特殊意义,所有需要转义,写成了\\\\。

([\\s\\S]*?)正则表达式写法
[\\s\\S]意思是匹配所有 空白字符+非空白字符 ,说白了也就是全部字符都可以 意思是0个或多个,加个问号为尽量捕捉到更少的字符串,也就是限定了不把后边的<\/span>也给捕捉进去9 ()括号里面是组,可以提取组内的内容,<span id="ctext">([\\s\\S]*?)<\/span> 意思就是匹配所有在两个<span>...

正则表达式[\\s\\S]*?怎么解释
首先你要匹配什么?[\\s\\S]空或是非空,那就是全部字符,加了*表示0到n次,一般到这里结束了,加上了?号,那就是你有多少个字符,你的结果就会有多少‘无值’。给你看图吧

谁能告诉我这个正则表达式 [\\s|\\S]*? 这里的?有什么作用?
第一个中的正则是[\\s|\\S]*,表示区配所有字符n次,属于贪婪模式重复区配,即尽可能多的区配字符串。所以会区配$str的所有内容。第二个正则是[\\s|\\S]*?,比第一个多个个文号,?表示重复前面的0次或者一次。由于前面是*,这里*?就表示以勉强模式区配,它是尽可能的以最小的长度区配字符串...

正则表达式中,[\\s\\S]* 什么意思。。。“[ ]”不是范围描述符吗?
8.正则中,为了更方便你使用,还弄了个更方便的缩写:\\w 表示 [0-9a-zA-Z_]即 数字 小写字母 大写字母 下划线 的组合 否则每次都这么写,也是累死了。其中 [0-9]也可以用\\d表示 9.关于中括号的,更详细的完整的解释,我早就写了教程了,自己去看吧:【教程】详解Python正则表达式之: [] ...

正则表达式[\\s\\S]*
这个正则表达式的意思就是字符串开始 + n个空白字符 + ( n个任何字符 ) + n个空白字符 + 匹配字符串结束其中括号部分是是匹配成功后返回的内容。举例:^s*(.*?)s*$匹配 " 123sxdfds sdfsdf s "时会返回 123sxdfds sdfsdf s而不要$的^s*(.*?)s*的匹配有可能返回123sxdfds ...

相似回答