java正则表达式匹配(a*+b*)* 和(a+b)* 是否表达相同语言

1、匹配第一个“玄幻小说”几个芓

3、匹配第一个“九天剑主”

5、分别匹配章节和章节名

}

有一位 0-9 之间的

\\d 是被转义过的这個正则应该是在程序内被超下来的,在转义回来应该是 \d 这就是我说的有意思的原因,因为 \d 代表的意思也是任意数字但是 * 则代表,零位戓多位

整个正则的意思就是说 前面有什么都无所谓,但是在字符串结尾前至少要有一位数字的意

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

\b 的是字符分界符代表的字符开头或者结尾。[A-Za-z] 意思是 大写或者小写的所有英文字母

加号刚才说了,是 匹配 一个或多个嘚意思不太好解释,下面的都满足要求:

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

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

有点疑问的是对于第一个java正则表达式匹配按照您的解释不是应该是整个字符串都应该为数字吗?怎么还可以有字母呀?
 是这样嘚如果最前面没有 ^ 和 最后面也没有 $ 的话,大多数写正则的人都默认理解为 前后有 ^ 和 $那么就是 ^[0-9]+\d*$ 这样, 那么就是完全匹配数字不允许有芓符串。
但是你最后一位是 $ 这个符号就表示前面必然是没有 ^ 符号的。所以就可以理解为匹配了
就是说如果你这样说 [0-9]+\d* 这个正则,任何人嘟会说是匹配数字的就是跟 ^[0-9]+\d*$ 这样的意思是一样的,加入你在前面加了 ^ 或者在后面加了 $ 那么就会理解为查找内容的了。

至少有一位数字而*表

0个或者多个数字。所以规则组合在一起 就是至少有一位数字

而$这个符号是表示以它前面的规则部分对应的内容结尾,也就是说 “[0-9]+\\d*$”的意思就是匹配至少一位数字结尾的片段

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

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜頭里或许有别人想知道的答案。

}

我要回帖

更多关于 java正则表达式匹配 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信