正则表达式 (尀d*尀.?尀d+)尀s?(尀w+)[0-9]+ (尀d*尀.?尀d+)尀s?(尀w+) 这两个的区别是什么呢?

2024-11-30 05:46:25
推荐回答(5个)
回答1:

一个匹配有符号数,另一个匹配有符号数或无符号数。


正则表达式,又称规则表达式,是计算机科学的一个概念,这个概念最初是由Unix中的工具软件普及开的。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要分为DFA、NFA两大类。许多程序设计语言都支持利用正则表达式进行字符串操作。

在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在WINDOWS的阵营下,正则表达式的思想和应用在大部分 Windows 开发者工具包中得到支持和嵌入应用。

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

回答2:

\d表示[0-9]任意数字,等同于[0-9]。
\d*表示0个或多个数字。
\.表示小数点,因为.表示任意这符,所以加\将.转义一下,表示只是点(小数点)的意思。
\.?表示这个点(小数点)最多只能出现一次,即要么不出现,要么只出现一次。?表示出现0次或1次。
\d+表示多次(1次和1次以上)数字。
\s表示空白字符,\s?表示最多只能出现一次空白(通常指空格)字符,即要么不出现,要么出现一次。
\w表示任意字母和下划线。
\w+表示多次出现字母或下划线。

(\d*\.?\d+)\s?(\w+)整体表示正数加字母的组合字符串。如0.12abc、0.189 a_b、123a、123ac_、.12 ac_bd等等。

以上还有疑问,可以Hi我。

回答3:

()括起来的表示原组,就是提取括号里面的匹配的字符串到程序里的数组里, 如果你想了解更多,可以上网查查, 结合实际才更容易了解
\d表示一个数字
\d*表示一个数字重复0次或者多次
\. 转义的是小数点 "." 符号
?表示重复0次或者多次
\s?表示空格或者tab重复0次或者1次
\w+表示字符重复1次或者多次(\w可以表示英文字符,数字,中文等,但不包括标点符号)
[0-9]等同于\d, 所以[0-9]+表示数字重复1次或者多次

回答4:

区别在第一个最后有 [0-9]+,这个表示后面必须有一个或多个数字,第二个就没有这个要求。
我觉得lz不是想问这么简单的问题,做好准备回答追问。

回答5:

\d 匹配数字
\. 转义成.
\s 匹配空格
? 匹配零次或一次
+ 匹配一次或者多次
\d \.? 匹配数字. 零次或一次
\d*\.?\d+ 匹配有\d \.?条件下的数字一次或者多次
[0-9]+ 匹配出现0至9中一个数字一次或多次
这俩个表达式只是用来区分结尾处是否为数字 因为\w包括数字,字母,下划线