gpt4 book ai didi

java - Java中\b边界匹配器的使用

转载 作者:行者123 更新时间:2023-11-29 07:50:19 25 4
gpt4 key购买 nike

我正在阅读 Boundary Matcher来自 Oracle 文档。我了解大部分内容,但我无法掌握 \b 边界匹配器。这是文档中的示例。

To check if a pattern begins and ends on a word boundary (as opposed to a substring within a longer string), just use \b on either side; for example, \bdog\b

Enter your regex: \bdog\b Enter input string to search: The dog plays in the yard. I found the text "dog" starting at index 4 and ending at index 7.

Enter your regex: \bdog\b Enter input string to search: The doggie plays in the yard. No match found. To match the expression on a non-word boundary, use \B instead:

Enter your regex: \bdog\B Enter input string to search: The dog plays in the yard. No match found.

Enter your regex: \bdog\B Enter input string to search: The doggie plays in the yard. I found the text "dog" starting at index 4 and ending at index 7.

简而言之,我无法理解\b 的工作原理。谁能帮我描述一下它的用法并帮助我理解这个例子。

谢谢

最佳答案

\b 是您可以称之为“ anchor ”的东西:它将匹配输入文本中的一个位置。

更具体地说,\b 将匹配输入文本中的每个位置,其中:

  • 没有前面的字符,后面的字符是单词字符(任何字母或数字,或下划线);
  • 没有后面的字符,前面的字符是单词字符;
  • 前面的字符是单词字符,后面的字符不是;或
  • 后面的字符是单词字符,前面的字符不是。

例如,文本 "my dog eats" 中的正则表达式 dog\b 将匹配紧接在 g 之后的位置 dog(这是一个单词字符)和以下空格之前(不是)。

请注意,与所有 anchor 一样,它与位置匹配的事实意味着它不会消耗任何输入文本。

其他 anchor 是^$、lookarounds。

关于java - Java中\b边界匹配器的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com