正则表达式 (\d*\.?\d+)\s?(\w+)[0-9]+ (\d*\.?\d+)\s?(\w+) 这两个的区别是什么呢?
(\d*\.?\d+)\s?(\w+)[0-9]+
(\d*\.?\d+)\s?(\w+)
这两个的区别是什么呢? 展开
一个匹配有符号数,另一个匹配有符号数或无符号数。
正则表达式,又称规则表达式,是计算机科学的一个概念,这个概念最初是由Unix中的工具软件普及开的。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要分为DFA、NFA两大类。许多程序设计语言都支持利用正则表达式进行字符串操作。
在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在WINDOWS的阵营下,正则表达式的思想和应用在大部分 Windows 开发者工具包中得到支持和嵌入应用。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
\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我。
\d表示一个数字
\d*表示一个数字重复0次或者多次
\. 转义的是小数点 "." 符号
?表示重复0次或者多次
\s?表示空格或者tab重复0次或者1次
\w+表示字符重复1次或者多次(\w可以表示英文字符,数字,中文等,但不包括标点符号)
[0-9]等同于\d, 所以[0-9]+表示数字重复1次或者多次
我觉得lz不是想问这么简单的问题,做好准备回答追问。
有能力的话 把第二个全部解释一下吧。包括 括号 每个组合是什么意思。 本人不是很擅长 正则 谢谢啦
(\d*\.?\d+)\s?(\w+)
\d 表示是数字
\. 就是字面的字符 .
\s 表示空白字符,如空格、制表符、换页符
\w 表示下划线、字母和数字
* 表示前面的内容可以有 0 个或多个
? 表示前面的内容 0 或 1 个
+ 表示前面的内容可以有 1 个或多个
这个表达式就可以匹配类似如下的内容以空白符号分开的数字和一些描述的行,并将相应的内容获取到分组 1 和 分组 2 中:
1111.123123 aksjfdlasjfl
.34234234 askdfljk9_dkfjsdfj
而(\d*\.?\d+)\s?(\w+)[0-9]+就不能匹配上述内容
但由于没有用 ^$ 来限制,也就是说上如果一个字串的某个部分能达到上述要求也能被匹配,所以(\d*\.?\d+)\s?(\w+)[0-9]+可以匹配的内容,(\d*\.?\d+)\s?(\w+)也能匹配成功。
如下为测试代码,保存为 html 文件,浏览器允许运行脚本进行测试。
<html>
<head>
<!--
保存为 html 文件,浏览器允许运行脚本进行测试。
-->
<script type="text/javascript">
function check()
{
var str;
str = document.getElementById("txtInput").value;
if (str.match(/(\d*\.?\d+)\s?(\w+)/) != null)
{
alert("匹配结果:\n分组1:" + RegExp.$1 + "\n分组2:" + RegExp.$2);
}
else
{
alert("不匹配");
}
}
</script>
</head>
<body>
输入:<input type="text" id="txtInput" value="1111.123123 aksjfdlasjfl" />
<button type="button" onclick="check()">正则检查</button>
</form>
</body>
</html>
\. 转义成.
\s 匹配空格
? 匹配零次或一次
+ 匹配一次或者多次
\d \.? 匹配数字. 零次或一次
\d*\.?\d+ 匹配有\d \.?条件下的数字一次或者多次
[0-9]+ 匹配出现0至9中一个数字一次或多次
这俩个表达式只是用来区分结尾处是否为数字 因为\w包括数字,字母,下划线