有没有人能够解释下这个正则表达式是什么意思: /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/ 先谢谢了

如题所述

/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/
^ #匹配字符串开头
-? #匹配减号,问号表示减号是可选的,可以没有
\d+ #匹配任意位的数字
| #表示‘或’关系
\d{1,3} #匹配1-3位数字
(?:,\d{3})+ #匹配一个逗号加一个3位数字,+号表示可以重复多个
(?:\.\d+)? #匹配一个小数点和多位数字
$ #匹配结尾

综合起来,这个正则表达式用于匹配数字
可以是整数,也可以是小数
12345和12345.6789都可以
可以是负数也可以是正数
-12345和-12345.6789也行
整数部分还可以有逗号做分割符
12,345,678,901.123456也可以匹配
当然
-12,345,678,901.123456也可以追问

谢谢你了,那你能不能解释一下 (?: 是什么意思吗? 还有 (?:\.\d+)? 这个地方最后一个问号是修饰它前面那个 ) 还是修饰整个(?:\.\d+)呢?

追答

(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

至于为什么这里要用(?:)
我也不知道,估计他只想匹配这些内容,但不希望捕获吧

?自然是修饰整个括号里的内容啊

温馨提示:内容为网友见解,仅供参考
无其他回答

...\/^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$\/ 先谢谢了
\/^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$\/ ^ #匹配字符串开头 -? #匹配减号,问号表示减号是可选的,可以没有 \\d+ #匹配任意位的数字 | #表示‘或’关系 \\d{1,3} #匹配1-3位数字 (?:,\\d{3})+ #匹配一个逗号加一个3位数字,+号表示可以重...

这个正则表达式什么意思\/^(-?\\d+)(\\.\\d+)?$\/
^(\\d)$就是0-9的任意一个数字;^表示以...开头,\\d表示0-9的数字,$表示以...结尾;所以这个就是表示单个数字了。正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

请问这个正则表达式是什么意思
[a-zA-Z]:中括号[]中代表一个字符,这个字符的范围就是括起来的部分。这里就是所有的英文字符了,包括大写和小写的 \\\\d:实际上是\\d。前面那个\\符号是转义后面那个\\字符的。\\d在正则表达式里面代码一个数字,和[0-9]是等价的 后面的 {3} 代表重复它前面的模式三次,\\\\d{3}相当于三个数字...

请帮忙解释下javascript千分位显示数字的正则表达式
:$|\\D),(\\d{3})+匹配连续三个数字一次或多次(也就是必须是连续的3、6、9.。。。个数字)。后面的(?:$|\\D)是非获取匹配一个结束或者非数字字符。so这个正则匹配的是 一个到三个连续数据 这个数字的背后必须是连续的3的倍数的数字加一个非数字或者是空格换行之类的结束 如 123456789 ...

...看看这条正则表达式的意思([+-]?(?:\\d*\\.)?\\d+)\\s*[-~~]\\s*...
[+-]?(?:\\d*\\.)?\\d+)表示前面可以有正负号的数字(可以有小数点)中间的 \\s*[-~~]\\s 表示字符 ‘-~~’中的一个,前面可以有空格,制表符等 整个正则表达式就表示用字符 -~~ 中的某个字符连接起来的两个数字

这个正则表达式什么意思\/^[-+]?\\d+(\\.\\d+)?$\/
匹配有正负符号或者没有正负符号的整数或者小数

\/(\\d{1,3})(?=(\\d{3})+(?:$|\\D))\/g 这是人民币小数点后二位的正则表达式...
你确定写的这是 小数点后两位正则表达?没看懂:\/ (\\d{1,3}) #1~3个数字 (?= #后面跟着:(\\d{3})+ #3个数字为一组,有1~N组 (?:$|\\D) #后面是 美元符号或一个非数字 )\/g

[\\\\d,]+\\\\.?[\\\\d]*正则表达式表示什么解释下
大括号里面的数字,表示匹配次数,\\d{1,} 就可以匹配1个或多个数字 \\d{2,3} 可以匹配2~3位的数字 \\d{1} 就是刚好1位

正则表达式“\\\\d+||(\\\\d+\\\\.\\\\d+”是什么意思
+ 表示 1个或多个 组合起来 \\\\d+ 就表示多个数字,形如 12、44、6763……\\\\. 匹配一个小数点 \\\\d+\\\\.\\\\d+ 就表示小数,形如12.334、0.12、87.343……| 表示或者,一个竖线就够了 () 括号在这里表示分组,实际不匹配任何字符,此处不要括号也可以 总结 \\\\d+||(\\\\d+\\\\.\\\\d+...

请问这个正则的意思 (-?\\d+|\\d*)\\.\\d+
也就是 -123.123 .123 会被匹配到 下面的正则 可有可无的-后面 0~n个数字组合 后面 小数点. 后面1~n个数字组合 区别在于()这个括号表示分组 还有一个 | 表示左边成立或右边成立都可以被匹配出来 (-?\\d+|\\d*) 可以匹配 -123 也可以匹配 没有数字 ...

相似回答