正则表达式 [0-9]+\\d*$和\\b[A-Za-z]+\\b 的匹配例子是怎么样的呀??哪位大神可以讲解一下!谢谢~

如题所述

第一个 [0-9]+\\d*$ 这个正则... 看着有点意思。
[0-9]+ 意思是 至少有一位 0-9 之间的数字,0123456789 任意一个都行,至少一位,不限制最多位数。
\\d 是被转义过的,这个正则应该是在程序内被超下来的,在转义回来应该是 \d ,这就是我说的有意思的原因,因为 \d 代表的意思也是任意数字,但是 * 则代表,零位或多位。
$ 是结束符。
整个正则的意思就是说 前面有什么都无所谓,但是在字符串结尾前,至少要有一位数字的意思。
直接写成 \d+$ 或者 [0-9]+$ 都可以。

abc1
123
1

以上三个字符串都满足第一个正则表达式的要求。

\\b[A-Za-z]+\\b 这个我们先转义回来,\\b 转义为 \b 之后为 \b[A-Za-z]+\b

\b 的是字符分界符,代表的字符开头或者结尾。[A-Za-z] 意思是 大写或者小写的所有英文字母。
加号刚才说了,是 匹配 一个或多个的意思,不太好解释,下面的都满足要求:

abc abc abc
hello ccc world
hel'lo ccc world

以上任意一组变成数字就不行了。

字符分界符不单单是空格,所有可作为单词分界的,都为分界符。追问

有点疑问的是对于第一个正则表达式,按照您的解释不是应该是整个字符串都应该为数字吗?怎么还可以有字母呀??

追答

是这样的,如果最前面没有 ^ 和 最后面也没有 $ 的话,大多数写正则的人都默认理解为 前后有 ^ 和 $,那么就是 ^[0-9]+\d*$ 这样, 那么就是完全匹配数字,不允许有字符串。
但是你最后一位是 $ 这个符号,就表示前面必然是没有 ^ 符号的。所以就可以理解为匹配了。

就是说如果你这样说 [0-9]+\d* 这个正则,任何人都会说是匹配数字的,就是跟 ^[0-9]+\d*$ 这样的意思是一样的,加入你在前面加了 ^ 或者在后面加了 $ 那么,就会理解为查找内容的了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
[0-9]+ 和\\d* 意思是 至少有一位 0-9 之间的数字,因为符号 +是表示至少有一位数字,而*表示有0个或者多个数字。所以规则组合在一起 就是至少有一位数字。
而$这个符号是表示以它前面的规则部分对应的内容结尾,也就是说 “[0-9]+\\d*$”的意思就是匹配至少一位数字结尾的片段。

\\b[A-Za-z]+\\b这个规则的意思 就是 因为在部分语言中 正则的表示方法需要转义, 这里的\\b就是转义的结果其意思就是单词结束符。中间的部分是表示至少一个字母 无论大小写。
相似回答