java边界匹配器举例,边界匹配者

# 边界匹配者

到目前为止,我们只对某个特定输入字符串中的某个位置是否发现匹配感兴趣。我们从来不关心匹配发生在字符的哪里。

您可以通过使用边界匹配器指定这些信息来使您的模式匹配更精确。例如,也许你有兴趣找到一个特定的单词,

但只有当它出现在一行的开头或结尾。或者也许你想知道匹配是发生在单词边界还是在上一场匹配结束时。

下表列出并解释了所有边界匹配器。 边界构造 描述 ^ 一行的开始

$ 一行的结束

\b 一个字边界

\B 非字边界

\A 输入的开始

\G 上一个匹配的结尾

\Z 输入的结尾,仅仅最后的终止符(如果有的话)

\z 输入结束

下面的例子演示了如何使用边界匹配器 ^ 和 $。如上所述,^ 匹配一行的开始,并且 $ 匹配结束。

第一个例子是成功的,因为该模式占据整个输入字符串。

第二个示例失败,因为输入字符串在开头包含多个空格。

第三个例子指定一个允许无限空格的表达式,后面是行尾的“dog”。

第四个例子要求 “dog” 出现在一行的开头,随后是无限数量的字符。

要检查一个模式是否开始和结束于一个单词边界(而不是一个较长的字符串中的子串),只需在任一侧使用 \b; 例如,\bdog\b

要匹配非字边界 请使用 \B

注意下:在前面的章节中由于多次在调用处打印了 当前使用的正则,所以把之前的测试类稍微改动了下,把打印的语句放到了调用函数中。

第一个例子失败了,是因为 dog 左边必须是单词边界,右边则不能是边界。

第二个例子成功了,符合表达式

要求匹配仅在上一场匹配结束时发生,请使用 \G:

这里第二个例子只找到一个匹配,因为第二次出现的 "dog" 不是上一个匹配的结尾。(也就是说只出现第一个匹配的字符)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值